That immediacy is mostly thanks to OpenCSG which is essentially a magic trick to quickly fake 3d rendering of booleans between 3d objects using stencil buffer of gpu. http://opencsg.org/
In other words it renders the cylinders cubes spheres etc and their unions differences etc, to a 2d screen without actually calculating the intersection of those meshes / solids in 3d space.
This is the special thing about OpenSCAD design is they figured out how to build an abstract syntax tree that could either be sent to OpenCSG, CGAL (old engine), Manifold (new engine), or even the bare bones 'ThrownTogether' renderer (ancient engine on machines with no gpu that just draws 'negatives' as green blobs iirc).
It should be theoretically possible for any CAD program to do this. its just a lot of work.
I didn’t know they’d added an alternative kernel. The CGAL one used arbitrary precision which massively slowed it down.
Also, fillets are made using the Minkowski operation, which is super slow.
wow, this is really neat. I always noticed how, when panning around with ortho view, it didn't need to re-render
> This is the special thing about OpenSCAD design is they figured out how to build an abstract syntax tree that could either be sent to OpenCSG, CGAL (old engine), Manifold (new engine), or even the bare bones 'ThrownTogether' renderer (ancient engine on machines with no gpu that just draws 'negatives' as green blobs iirc).
Mostly.
I've still had several instances when drawing curved solids that the OpenCSG renderer worked well with (visually) but when it came to render-time, there was something wrong. It is very hard to debug things, or at least I found it so, when it goes wrong like that.