Artifact
76397fef4b777c3f3a88fee41ea3351443cf0bee:
Wiki page
[a3d] by
matt
2017-10-26 16:40:12.
D 2017-10-26T16:40:12.686
L a3d
P 164d06fab2a746acf93726390a7d44467c693054
U matt
W 1924
<h2>A3D - All 3D</h2>
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.
<h3>POVRAY Target</h3>
Write the design in scheme/a3d and compile for POVRAY for photorealistic pictures.
<h3>OpenScad</h3>
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 ([http://www.microcruising.com/Elusion.htm|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.
<h4>Examples</h4>
<table>
<tr>
<td>
Boat hull (see [./doc/tip/a3d/boat.scm|boat.scm]):<br>
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.
<img height="400" src="./doc/tip/a3d/pics/boat.png">
</td><td></tr></tr><tr><td>
Dining Room (OpenScad) source is [./doc/tip/a3d/dining-room.scm]:<br>
<img height="400" src="./doc/tip/a3d/pics/openscad.png">
</td><td>
Dining Room (POV Ray):<br>
<img height="400" src="./doc/tip/a3d/pics/povray.png">
</td></tr></table>
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.
Z 144e9c8bda30d80db88ae365755a6052