Random Bits of Open Code

Artifact [76397fef4b]
Login

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