I got the email on Friday from Oculus VR that my Rift Developer Kit would be shipping soon. Naturally I’m pretty excited, since I haven’t used a VR headset since some tech expo I was at back in the 90s—and the Rift is substantially more advanced. I’m also quite excited for the 4-month Unity Pro trial license that comes with the Rift (not to mention Unity Pro’s new subscription license!).
So this weekend, with the expectation of the impending arrival of said hardware, I’ve been playing around with a bunch of different things. Exploring my options, as it were, to take full advantage of the Rift hardware once it arrives. I plan to write a Common Lisp wrapper to the Oculus SDK, as that will be generally useful for Lisp game developers; but it would benefit me more directly to have a toolkit in Lisp for procedural generation of 3D graphics.
That’s when I came across (FLUXUS), a really cool livecoding environment built on Racket (a relatively new flavour of LISP/Scheme). It doesn’t have support for the Oculus Rift, and I imagine it would be slightly difficult to type with a VR headset on, but at least it’s a step in the right direction. But that’s no matter, because (fluxus) is exactly the tool I was looking for, for my live music performances.
It’s quite straightforward to use. Here is a fun example from the front-page:
(clear) (define (render) (with-state (hint-none) (hint-wire) (backfacecull 0) (wire-colour #(1 0.25)) (translate (vector (* 2 (sin (time))) (* 2 (cos (time))) (* 2 (tan (time))))) (rotate (vector (* 90 (cos (time))) (* 180 (sin (time))) (* 45 (tan (time))))) (build-cube))) (every-frame (render))
More importantly to me, and my art projects, you can pipe in audio and midi through the Jack audio server or from WAV files, and animate the audio. There are also examples of full, live-hackable games written for (fluxus). It’s quite a powerful tool.
After looking over the source code for (fluxus), it seems like it would be straightforward enough to implement integration for the Oculus Rift. I may suggest it, if it hasn’t already been. Once I get my Rift developer kit, and have a chance to work with text rendered over the 3D world, it will be more clear if the Rift is a suitable device to support for livecoding adventures.