lcodes / bllm

Blacklight Love Machine - A WebGPU in ClojureScript.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blacklight Love Machine

The enjoyment of one’s tools is an essential ingredient of successful work. – Donald E. Knuth

A WebGPU in ClojureScript.

Research, Education, Production, and Lisp!

After a weekend of looking at WebGPU specs, firefox sources and tons of internet documents… a wild WebGPU triangle appears!

  • [-] App setup, display a triangle
  • [ ] Add a frame/camera uniform buffer
  • [ ] Meta shader macros, generate bindings
  • [ ] Meshes and textures, working with data
  • [ ] Materials, parameterized effect shaders
  • [ ] Surfaces, parameterized 3D model shaders

How to run?

npm install # Ensures Stats.js and gl-matrix are exposed to ClojureScript.

There’s no production build yet. Everything runs from the REPL.

In Emacs/cider, run cider-jack-in-cljs to launch the environment, then navigate to http://localhost:9500/. Feel free to contribute setups of other editors!

Imaginative Software Development

Don’t try to control the process. Be creative and let things happen. Just see where they take you.

The browser is a perfect environment for this kind of application. There are enough technologies and APIs available to effectively consider it an operating system in its own right. The JavaScript virtual machine allows functions to be redefined at runtime and ClojureScript takes full advantage of this feature.

This application is entirely developed while it runs at full framerate. The goal is to provide a fun playground to learn development, quickly experiment with new ideas and maybe even produce interactive content interactively at the Lisp REPL.

The web is making incredible progress nowadays; Spacelancers for example is the result of an Unreal Engine game exported to the browser. Both WebGL and WebGPU!

About the Name

Naming things is hard, naming projects is impossibly hard. That’s why I leave it to whatever I find in the moment.

Just a few days ago, I learned The Mars Volta, one of the bands ever, released two new singles called Blacklight Shine and Graveyard Love.

Earlier that day, I was listening to Edguy’s Lavatory Love Machine for the first time in a decade. Then the mashup just became the name.

It speaks of the infinite shades inside a living system, which is lovely!

About

Blacklight Love Machine - A WebGPU in ClojureScript.

License:Apache License 2.0


Languages

Language:Clojure 95.0%Language:CSS 3.6%Language:Emacs Lisp 1.3%Language:HTML 0.1%Language:JavaScript 0.0%