Comments (4)
Another possible approach to this could be utilizing a crate like HVM to create shapes and providing an "code window next to preview window" workflow like openscad.
This would probably also ease development of a traditional CAD workflow as we wouldn't need to embed a full rust toolchain.
from fornjot.
Thank you for the suggestion, @freylint. I've seen HVM, but haven't looked into it deeply enough to judge whether it's an option.
Just note that web support is a priority for this project (#73), and for that reason the current plan is to use WebAssembly for the plugin system (#71). In concrete terms, this would probably mean embedding something like Wasmtime on the desktop, and use native browser capabilities to load WASM on the web.
I'd also like to note that Fornjot is modular, so for example the kernel just doesn't care who defined the geometry. It's possible to have alternative frontends that could be based on something else than WASM, although I don't think I would like to maintain those within this repository.
providing an "code window next to preview window" workflow like openscad.
I'd like to see that in some form. I do think that using an external editor should always have first-class support, as it is likely to be the preferred option for power users. But I do think it would be a huge accessibility advantage if people had everything they need in a single package.
This is one of these areas that are unlikely to see much attention from me for a long while, so any help is appreciated!
This would probably also ease development of a traditional CAD workflow as we wouldn't need to embed a full rust toolchain.
Yes, absolutely. Rust certainly isn't the ideal option for a CAD modeling language, and the toolchain required is one of the reasons for that. Rust is just the easiest thing to support right now, and I also think there's value in providing an alternative that is so different from the other Code-CAD options.
Switching to WASM will open up the options. I assume that Fornjot will switch to another language as the preferred one at some point; something that is accessible, easy to integrate into a web-based demo, etc. I don't have a clear vision for what that could look like. Previous iterations of Fornjot used a custom language, but I don't think that's a good option from a cost/benefit perspective.
from fornjot.
I just saw this article, which looks light it might be useful: https://rustmagazine.org/issue-2/optimize-rust-comptime/
from fornjot.
Closing this issue as out of scope. See A New Direction for context.
from fornjot.
Related Issues (20)
- Validate that faces in a shell don't intersect
- Improve shading to properly display blind holes
- Document limitations of shell-face sweeping HOT 1
- Use flexible object selectors in update and replace operations
- Validate that regions within a sketch don't intersect
- Validate that shells within a solid don't intersect
- Look into simplifying winding/handedness
- Upgrade to `wgpu` 0.19
- Upgrade to `threemf` 0.5 HOT 1
- Validation precision issues with large objects HOT 2
- Clarify situation around subtractive sweeps
- Validation is no longer reliable in the presence of the geometry layer
- Only define geometry for `Surface`, `Curve`, and `Vertex` HOT 12
- Request: Add variant of `process_model` that accepts `Args` rather than parsing them HOT 2
- Example usage together with Bevy? HOT 1
- The possibility of Fornjot as an alternative CAD kernel for CadQuery HOT 1
- Upgrade to wgpu 0.20
- Upgrade to winit 0.30
- Validate that objects which have distinct positions in a lower dimension, don't map to the same positions in higher dimensions
- CI failure on Windows HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fornjot.