Bauble is a toy for composing signed distance functions in a high-level language (Janet), compiling them to GLSL, and rendering them via WebGL.
Bauble is still in its early days, but it's progressed to the point that you can do some pretty neat stuff with it. Try it out at https://bauble.studio/, or watch this video introduction where I model an infinite number of hot air balloons:
For more examples, I sometimes tweet videos of Bauble's development:
- bounding surfaces
- instanced repetition
- animation
- procedural distortion
- non-rigid deformations
- announcement
- surfaces
- shapes
- first ever demo
To build Bauble, all you have to do is run:
$ ./build.sh
To create an optimized build, use:
$ BUILD_MODE=prod ./build.sh
- Bauble will cast and calculate lights even for shaders that don't need lights, making it slower than it needs to be in the default RGB-normal shading view.