GL:
- more GL object primitives:
line,sphere, pyramid - Collect ideas/implement Flowskell.Lib.Glitch (distortion effects, etc)
TexturesShaders! (local and global (glow, blur)) http://wiki.delphigl.com/index.php/ShadersammlungRead http://www.arcadianvisions.com/blog/?p=224make-grid command or so to show the axis (RGB=XYZ) (can be called at top level or after a specific transformation)- Look into performance issues (allocating texture, depth buffer, render-to-texture)
Fonts? using simple glut fonts for nowOption to enforce viewport width/height- Ability to change post shader (currently blur) or use multiple post shaders (yay!)
- Ability to move light source
- Ability to add texture to sphere and make earth.scm example
- Probably like this: glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glNewList(list[0], GL_COMPILE); sphere = gluNewQuadric(); gluQuadricDrawStyle( sphere, GLU_FILL); gluQuadricNormals( sphere, GLU_SMOOTH); gluQuadricOrientation( sphere, GLU_OUTSIDE); gluQuadricTexture( sphere, GL_TRUE);
Scheme:
unify (vector 0 0 0) stuff, then implement HSV coloringimplement vector functions like vmul, vadd, ...fix float error- scheme compilation to Haskell AST instead of evaluation
use fluxus-like (every-frame ...) instead of current (define (every-frame) ...)- memoize stuff like secs, msecs so that 1) they stay the same for each frame, 2) evaluation is faster due to lazyness
- maybe add an option to modify lisp tree randomly and use genetic algorithm to weight results (fitness=variance of the output or so)
- Add (with-color), (with-texture), (with-shader), (preserve-matrix), as (push) ... (pop) is not very Lisp like
Viewer:
be able to rotate top level with mouseand cursor keys- mouse wheel should be zoom
- optional code,
fps display - REPL
- Bugfix: Do not write to REPL when it is hidden
- Bugfix: Fix encoding in REPL
- Funky cursor in REPL instead of pipe
- Code (re)loading
live code reloading, and fix F5 code reloading firstBugfix: Code reloading: do not crash when source does not exist anymore- Remember path to all shader sources, and also do a reload of these
+ more robust error handling (do not exit on Scheme error, or better yet: rewind to old environment)- Do not exit on GLSL error
- Keys
F1: show helpF2: toggle REPLF3: toggle fps- F4: toggle source
F5: source reloadF6: reset view matrixF7: screenshot- F11: fullscreen
- ?: Skip through presets/examples
Input:
- Audio
implement Jack capture- make Jack audio input stable
- fourier analysis/harmonic analysis
- MIDI
- Keyboard
Testing:
- Write tests for Scheme functions
- Write functionality that verifies that no example contains errors
- Write a stress test