A3D - All 3D
Do you prefer to write code over pushing polygons around with a mouse?
Goals:
- Write 3D CSG code in Scheme - all the power of functional programing in Scheme.
- Target multiple tools for visualization and processing.
POVRAY Target
Write the design in scheme/a3d and compile for POVRAY for photorealistic pictures.
OpenScad
Write the design in scheme/a3d and get the interactive browsing of openscad. Print the design on your 3D printer.
Some of the projects I want to do include redesign of the dining room, a boat (based on the Elusion design by Matt Layden) and various other projects. Being able to do photorealistic renderings is quite handy but openscad has no good way that I know of to do such a rendering. I wrote a3d to fill this gap for me.
This is a very early release which has the beginnings of a useful subset supporting OpenScad and POVRay.
Examples
Boat hull (see boat.scm): This uses bezier curves from the 2d-primitives egg to construct non-compound curves for the sides. With large values for "accuracy" quite smooth surfaces can be formed. I'm focused on non-compound curves as my plan is to build the boat with plywood. | |
Dining Room (OpenScad) source is ./doc/tip/a3d/dining-room.scm: |
Dining Room (POV Ray): |
NOTE: After doing all this work I found Ruckus for Racket: https://docs.racket-lang.org/ruckus/index.html which is somewhat overlapping with what I want to do with a3d. I may merge the syntax of a3d to make it compatible with Ruckus. They are already quite similar.