Neon22 - 2009-02-24

I've been looking at BRL-Cad for the boolean subtractive discussions. http://brlcad.org/
Opensource CSG modeller.

BRL-Cad is a csg modeler that also has "bags of triangles" and can export to several useful formats.
Problem is the main file format is a database. Its very old school and started in the 70s for military.
Its sure shows :-)

Luckily it also has a tcl based ascii format (asc) which has commands to create the objects.
Looks like it might be coerced into rendertemplate compatiblity. Its basically a set of instructions to build the database file one object/material at a time. Pity it uses curly brackets...

Complex objects are made by grouping the solid csg entities into regions. materials can be attached to regions. (you have to make a region even if only a single entity :-()

I am trying to find of all the position/ rotation verbs are available in the SS rendertemplate sub-language. It doesn't look like it - and there's the {} problem too.

I.e. SS has a {matrix} but the asc format needs pos, rot, scale values separated.
e.g. a sphere is defined as:
put {sphere1} ell V {6.32 12.87 39.90} A {1 0 0} B {0 1 0} C {0 0 1}
(ABC is radius along each axis, ell means ellipse solid, sphere1 is the name)

and a box as:
put {body.s} arb8 V1 {0 0 0} V2 {16 0 0} V3 {16 32 0} V4 {0 32 0} V5 {0 0 48} V6 {16 0 48} V7 {16 32 48} V8 {0 32 48}
   - 8 vertex locations in an arb8

BRL-Cad supports about 10 CSG entities.

a material addition looks like:
attr set {radio.c} {rgb} {0/255/0} {oshader} {mirror}
where mirror is one of their built-in shader types like {plastic}

Only has two lines of preamble.

Can be converted to DXF, IGES, STL, wavefront OBJ, and VRML (and some more)
Could be a route out for SS here...