Skip to content

a playground for making 3D art with lisp and math

License

Notifications You must be signed in to change notification settings

xrd/bauble.studio

 
 

Repository files navigation

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:

Livecoding a hot air balloon (1/3)

For more examples, I sometimes tweet videos of Bauble's development:

Dependencies

Afterwards, install JavaScript dependencies with:

$ yarn
$ (cd ui && yarn)

bauble is being developed alongside codemirror-lang-janet. If you want to make changes to the grammar, clone that repo and run yalc publish from the root of it. Then run yalc link codemirror-lang-janet in this repository, and you'll be able to see your changes locally.

Development

To build Bauble, all you have to do is run:

$ redo

To create a minified, optimized build, use:

$ BUILD_MODE=prod redo

Lint the JS with:

(cd ui/; yarn eslint .)

You can serve a local Bauble like this:

$ node_modules/.bin/alive-server public

About

a playground for making 3D art with lisp and math

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Janet 69.2%
  • TypeScript 21.2%
  • CSS 4.2%
  • C 2.4%
  • Shell 2.2%
  • JavaScript 0.7%
  • Nix 0.1%