Ни слова о луке

сэр шаман рассказывает о чём может

Fluxus — Прототипирование OpenGL графики и игр on-the-fly (добавить Scheme по вкусу)

Интернет для программиста интересующегося трёхмерной графикой уже несколько лет полнится видео, в котором на лету программируют визуалайзеры для музыки, сложные цветоморфированные эффекты или даже намного более хитрые вещи, работающие на стыке интерактива и трёхмерной графики - буквально, человек пишет код и где-то на фоне он тут же компилируется, выполняется и отображается результат, это называется 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))
Наверх