/README.md

https://github.com/jackrusher/geometer · Markdown · 56 lines · 38 code · 18 blank · 0 comment · 0 complexity · dbcfdf01f1fcb402706806588c3799b5 MD5 · raw file

  1. ![splash](https://raw.githubusercontent.com/jackrusher/geometer/master/resources/images/geometer.png)
  2. # Geometer
  3. In my continuing effort to get the [Clojure](http://clojure.org)
  4. community to notice [Karsten Schmidt](http://postspectacular.com), and
  5. the creative coding community to notice Clojure, I've created this
  6. little interactive playground for experiments with Karsten's
  7. [th.ing](https://github.com/thi-ng) libraries. A live version is
  8. hosted [here](http://proscenium.rusher.com/geometer/).
  9. ## Usage
  10. * Select model to generate from pallette
  11. * Switch between normal & stereo rendering modes
  12. ### Keyboard shortcuts
  13. * `w` / `s` - zoom in/out
  14. * `[` / `]` - adjust eye separation for stereo rendering mode (see HUD
  15. in top-right corner)
  16. Since it's hard to determine the correct eye separation without a VR
  17. device, with my cross-eyed experiments, I believe the sweetspot is at
  18. ~ -0.31. It's best to use a simple object (e.g. cube) and also
  19. somewhat zoom out. Once you see in stereo, then switch to more
  20. exciting objects (e.g. algae)...
  21. ## Getting Started
  22. After checking out the repo (and assuming
  23. [boot](https://github.com/boot-clj/boot) is installed):
  24. 1. Start the `boot` development server: `$ boot dev`
  25. 2. Point your browser of choice at `http://localhost:3000/`
  26. 3. Connect your editor to the `nrepl` server that `boot` started,
  27. which in `emacs` can done via `M-x cider-connect` `localhost`
  28. `geometer:port-number`.
  29. 4. Refresh your browser to make sure all the bits are talking to each other.
  30. 5. If you're using `emacs`, `cider-eval-buffer`.
  31. 6. Begin evaluating forms.
  32. N.B. Saving any `cljs` file will trigger recompilation of the entire file
  33. and an automatic reload of the namespace. The current model and view
  34. rotation are defined using `defonce` to avoid jankiness.
  35. ## The Code
  36. There are examples of creating meshes from primitive shapes, including
  37. extruding 3D meshes from 2D primitives, and implementations for a
  38. couple of simple generative techniques. More will follow.