This project is very heavily work-in-progress!
YASCAD is a 3D modelling language heavily inspired by OpenSCAD.
YASCAD's primary concept over OpenSCAD is that geometry is first-class. You can inspect the properties of geometry you've already drawn, which leds you draw or manipulate other geometry relative to the rest of your model.
- Create advanced models without needing to break out variables extensively.
- Focus primarily on creating productive, 3D-printable models.
- Be very familiar to users who are already proficient with OpenSCAD.
- 100% compatibility with OpenSCAD. Design decisions which make sense for YASCAD take precedence over maintaining compatibility or familiarity with OpenSCAD.
- Being a general-purpose programming language. This is for models only.
- Constraint solving between geometry. Execution should remain procedural/functional, otherwise this becomes too confusing.
This needs a recent nightly Rust. No crates are currently available, so check out the repo.
There are two executable entry points:
bin/yascad, a CLI for building modelsgui, a web-based graphical editor
In addition to these, there are two notable libraries:
langcontains language front-end/back-end crateswasmis a simplified WebAssembly binding for the language libraries- Build with
wasm-pack build --target bundler - Or, automatically built by
gui
- Build with
