Интернет для программиста интересующегося трёхмерной графикой уже несколько лет полнится видео, в котором на лету программируют визуалайзеры для музыки, сложные цветоморфированные эффекты или даже намного более хитрые вещи, работающие на стыке интерактива и трёхмерной графики - буквально, человек пишет код и где-то на фоне он тут же компилируется, выполняется и отображается результат, это называется livecoding. Чаще всего такие программы пишутся на языках из Lisp-семейства, подобный редактор есть для ProcessingJS, он тут же рендерит результат выполнения графического кода в браузере, но речь не о нём.
Fluxus - это одновременно кроссплатформенный open-source 3D-движок для игр на принципах livecoding и инструмент для прототипирования трёхмерной графики и интерактива в собственном трёхмерном пространстве. И при этом он не обделён достаточно подробной документацией. Язык программирования - расширенный графическими командами PLT Scheme.
Впрочем, смотрите сами:
Когда приложение запускается, оно запускается в режиме интерпретатора. Чтобы переключиться в режим написания полной программы, который показан на большинстве видео, нажмите Ctrl+1. Чтобы запустить рендеринг описанной сцены - нажмите F5.
Вот, например, две вращающиеся меняющие цвет сферы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | (define (animate)
(let* ((t (* (time) 2))
(x (sin t))
(y (cos t)))
(with-state
(translate (vector x y 0))
(colour (vector (+ 1.5 (sin (time))) 0 0))
(draw-sphere))
(with-state
(translate (vmul (vector x y 0) 3))
(colour (vector 0 0 (- 1.5 (sin (time)))))
(draw-sphere))))
(every-frame (animate))
|