diff --git a/README.md b/README.md new file mode 100644 index 0000000..c8f1f70 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# curlnoise + +A [Quil](http://www.quil.info/) sketch which implements what is +described in [Curl-Noise for Procedural Fluid +Flow](https://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf). + +Very much a work-in-progress as I am not especially experienced in +Clojure, nor in the mathematics of this paper. + +## Usage + +This runs in both Clojure via `lein run`, and ClojureScript via `lein +compile` or `lein figwheel`. + +Uncomment the `(run-sketch)` and the below should work: + +- LightTable - open `core.clj` and press `Ctrl+Shift+Enter` to evaluate the file. +- Emacs - run cider, open `core.clj` and press `C-c C-k` to evaluate the file. +- REPL - run `(require 'quil_perlin.core)`. + +## TODO + +- Better docs. +- Make things more interactive, e.g. let the user place obstacles. +- Factor out the potential function rather than burying it in + `update-state`. +- Visualize amplitude function & potential function. I have + `draw-field` which `show-fn` enables, but it is rudimentary. +- Figure out reasonable boundary behavior. I'd like to do toroidal, + but I would need to gradually blend the potential function at the + edges for this to work right (otherwise particles are just stuck at + the boundaries due to the discontinuity). +- Use 'real' simplex or OpenSimplex noise implementation that has a + gradient instead of doing it numerically?