5 ms·
How does this program differ from OpenSCAD? (https://openscad.org https://openscad.org, https://github.com/openscad/openscad https://github.com/openscad/opensca
by j-james 5y ago
How does this program differ from OpenSCAD? (https://openscad.org https://openscad.org, https://github.com/openscad/openscad https://github.com/openscad/openscad)
I'm a bit surprised there's no mention of it anywhere in the repository or on the website.
- alanbernstein 5y agoThe modeling language is completely different?
- progre 5y agoThe modeling language for Fornjot is Rust. To me, this seems like an akward language to write models in. Not saying that OpenSCAD:s modeling is amazing though.
- ur-whale 5y ago> The modeling language for Fornjot is Rust. To me, this seems like an akward language Yeah, that is a very weird choice indeed. Brings a ton of constraints to the user (borrow checker for 3d? why?) that have nothing to do with 3D modeling. I would have understood something like Python or Lua a lot better.
- riidom 5y agoThis should be a good use-case for rust-based scripting languages, I think. I loosely followed a project of that kind a while ago, I don't quite remember if it was Gluon [0] or Dyon [1]. Not sure if these are still active, or if another competitor showed up in meantime. ___ [0] https://github.com/gluon-lang/gluon https://github.com/gluon-lang/gluon [1] https://github.com/PistonDevelopers/dyon https://github.com/PistonDevelopers/dyon
- hannobraun 5y agoHey, author of Fornjot here. > The modeling language for Fornjot is Rust. To me, this seems like an akward language to write models in. I fully agree! Given that Fornjot is written in Rust, starting with Rust as the modeling language was just the most straight-forward option. But Fornjot is architected to be language-agnostic. Right now, it uses a plugin system based on dynamic linking, and you could plug anything in there that can generate C-ABI-compatible structs (the plan is to replace that with a system based on WASM). In addition, I've started splitting Fornjot into self-contained libraries[1]. Once that effort is complete, there will be lots of ways to make Fornjot available to other languages. That said, I think there's merit in having options when using Code-CAD, and Rust is certainly different enough from the typical alternatives to be valuable. I don't think it will ever be the best option for regular CAD modeling, but it might have a niche in infrastructure code that CAD models (written in other languages) use. [1] https://github.com/hannobraun/Fornjot/issues/141 https://github.com/hannobraun/Fornjot/issues/141
- ivanceras 5y agoRust has macro which allows you to write domain specific language if you want. The examples right now, is written in rust as they are still developing it. You need to have a solid core before building a domain specific language on top it.
- dymk 5y agoHaving to run the Rust compiler just to update my CAD model is a non starter though
- agucova 5y agoOpenSCAD is mentioned in the first article in the website, “The world needs another CAD program” [1]: > The most popular Code-CAD application, as far as I can tell, is OpenSCAD. While programming your CAD models, like you would program software, provides a lot of flexibility, the feature set of OpenSCAD is otherwise very limited. This makes many CAD modeling tasks tedious. > I want to use something more powerful, and that rules out OpenSCAD and a whole bunch of other less-known alternatives. [1]: https://www.fornjot.app/blog/the-world-needs-another-cad-program/ https://www.fornjot.app/blog/the-world-needs-another-cad-pro...
- j-james 5y agoAh, nice. Thanks for spotting that. I do wonder what kind of limitations the author ran into with OpenSCAD, and why they decided building a replacement code-CAD program was the best way to go. More power to them, I guess - it'll be cool to see what comes out of this.
- Brian_K_White 5y agoMany. Just one example is fillets. They don't exist. It's extremely painful to add fillets to anything by manually designing the geometry. There are a few libraries that try to provide the feature but they are forced to use a pretty inefficient minkowski math that brings your machine to it's knees, and they don't even work that well (can't actually handle every situation). And fillets are not just a nicity you can live without. They are critical all over the place. The openscad feature set is pretty basic, but there are at least one or two projects that essentially transpile from python to scad. IE, you desribe a model in python with functions that do more powerful things than native scad provides, and it outputs scad code to make that model. I haven't used those so I can't say more than that about them. I still use openscad directly for a lot of things and live with it's limitations because to me it's just that huge to be able to check in the model in git and actually diff it and read the file and the diffs directly, and for a whole model to be described in a couple k of human readable text instead of 10 megs of binary or xml.
- _flux 5y agoI think OpenSCAD desperately needs some kind of anchors. E.g. how does one place a sphere on top of a box? First you instantiate a box, then you calculate the center coordinate of the sphere and instantiates that one. If you have many objects touching each other, you're going to have a lot of maths there with a lot of variables or functions to reduce repetition. A better way in my mind would being able to express things like "sphere of radius R has its bottom at center of box.top". Not even a constraint solver is required for this, though that could be nice as well, but would probably introduce its own set of problems :). This kind of thing could be particularly nice with the interactive OpenSCAD editor that would enable quickly visually determining the locations of the anchors.
- hannobraun 5y agoHey, author of Fornjot here. In addition to the article that agucova posted, OpenSCAD is also specifically called out in the FAQ: https://www.fornjot.app/faq/ https://www.fornjot.app/faq/ Second question. (Sorry, there isn't a way to link to specific questions in the FAQ yet. I've made a note to add that.)