Files
processing4/processing/todo.txt
2001-11-28 06:22:01 +00:00

433 lines
16 KiB
Plaintext

processing todo list
(most up-to-date version of this file is in processing cvs)
PEOPLE WHO WANT IT
christophe buffet <christophe@wkmx.org>
Eric ANDRON <ericandron@wanadoo.fr>
Michael Davis <shyfter@imsa.edu>
andres <moscoca@bigpond.com>
d.amarel <d.amarel@dotsperinch.com>
Daniel Evan Schwartz <design@roomn8.com>
Roger Langley <galahad@uslink.net>
Roy Macarthur <roy@mcarthur.com>
Fabrice Clérot <fabrice.clerot@francetelecom.com>
"Daniel Mendelsohn @ Heads4Sale" <dan@heads4sale.com>
Michael McGuffin <mjmcguff@dgp.toronto.edu>
QUESTIONS
_ is day, month, year overkill inside processingapplet?
_ PImage, PFont or how to name?
_ loadImage or getImage?
_ bezierVertex/catmullRomVertex poorly named (based on algo used)
_ instead curveVertex/fitCurveVertex/etc.
_ circle/square functions
_ should the default be 100x100
_ maybe stop/kill button should only be a stop btn
for 0012
_ write code to bind/convert java fonts
_ finish color function inside applet
_ do by simplifying stroke/fill/background inside bagel
_ these should be done w/ a switch (STROKE, FILL, BK, OTHER)
_ screenGrab() code (single frame to tif)
_ include stdout/stderr in the processing window
_ option to toggle window on/off (not just in properties, but realtime)
_ set # of lines in properties
_ fix color cube applet
_ make it run in current version of processing
_ fix background from showing up black
for 0013
_ make size() work for draw() mode
_ inside KjcEngine, reach in and grab calls to 'size'
_ if call is not using a constant number, then punt
_ fixed width fonts
_ document fixed width font format
_ write code for reading uncompressed b/w tiff images
for 0014 (first semi-public release)
_ docs
_ explain using inner classes and using non-public classes
_ start 'errors' section
_ NullPointerException inside setup usually means no size()
_ ability to write functions and inner classes
_ mention ability to use import statements in java mode
_ ability to do real (but not public) classes in same document
_ make note in documentation about getting access to pixel array
_ pixels[] is in ProcessingApplet
_ check to see if get/set functions in applet actually work
_ fix documentation appropriately
_ when images aren't found on disk
_ image formats supported (gif and jpeg)
_ notes about running on win98 and that stupid startup exception
_ make note in documentation about convex polygons
_ post new macintosh version
_ with serial port support
_ move website to cvs
_ setting a fill color when drawing an image should affect the image
_ or maybe image.setColor or setTone to mix a specific color in
for 0015
_ option to enable/disable frame on running applets
_ more like photoshop - presentation mode w/ nothing or frames on all
_ compiling .java files leaves the .class files next to the .java
_ make sure all the dirs in sketchbook added to classpath on startup
_ if new dir added, must restart processing (this is acceptable)
_ ability to include other code from sketchbook directory
_ compile entire sketchbook on startup, then check for new files on compile?
_ when applet window is too large to fit, center and put in back
_ if BagelImage doesn't load, then image() calls arrayindexoutofbounds
_ better solution for this (error while opening image)
_ and document how image loading works
_ keys don't work, even when overriding keyTyped etc.
_ stderr in red color
_ modify kjc to take a PrintWriter, instead of current weird hacks
_ are line and point working in 3D?
_ stop required before kill for applets that use serial
_ this is behaving strangely
_ breaks on every 2nd run when using serial apps (or others?)
_ try calling gc on stop as well
for 0016
_ fix bugs from the 'bugs' file
_ run java code besides processing applets
_ if not processing applet, look for a main(), no main give an error
PROCESSING - NECESSITIES FOR BOOK
_ audio output (play wav, au, aiff(?), mp3)
_ alpha, anti-aliasing
PROCESSING - HIGH
_ make images work again
_ bug in paren balancing
_ shift-click on play for 'presentation mode'
_ does full screen and hides editor window
_ export doesn't work properly for stuff included from scrapbook
_ write dist.bat for releases
_ don't forget to update 'export' dir with processing releases
_ what happens if size() not called inside setup() ?
_ when using draw() instead of loop()
_ applet needs to notify runner that it has terminated
_ multiple types of KjcEngine (so that simplest model is available)
_ write code for automatic macintosh releases
_ make note of functions/variables used by ProcessingApplet
_ using them in your app will break things (i.e. init())
PROCESSING - MEDIUM
_ comprehensive list of reserved keywords
_ better handling on portinuse exception
_ or general exception handling--could go through some interface
_ compile from the sketchbook if there are changes
_ if 'void' left out before loop or setup, cryptic message about
_ 'constructor loop must be named Temporary_23498_2343'
_ curves not properly implemented as part of shape architecture
_ lines become 2 pixels thick after a 3D transform
_ kill button (without stop) doesn't clear play
_ image grabbing code (write to tiff)
_ build a linux/x86 release
_ per-vertex coloring doesn't work
_ the lights prolly shouldn't follow objects around
_ work on courseware applet code signing
_ why is z going negative, seems weird
_ maybe view needs to go from -100 to 100 with zero at screen plane
_ code to save a project to the main machine
_ setting up 'project' directories
_ delayUntil would be nice to have
_ but at some point there has to be a cutoff
_ have a library of useful code that people can add to programs
_ otherwise things are too simple, and env is a crutch
_ courseware menu
_ list of 'people' and 'projects'; refresh
_ based on local dir named 'projects' or 'sketchbook'?
_ copyPixel(x, y, to_x, to_y)
_ copyArea(x, y, w, h, to_x, to_y)
_ copyImage(image, x, y, w, h, to_x, to_y)
_ lesson plans (easier to translate)
_ write example applets in processing
_ courseware system
_ uploading pieces when finished - scrapbook/sketchbook model?
_ download new versions of pde.jar from main machine
_ quicktime exporter or image sequence export
_ how to use ssh identity file to maintain auth for brancusi
_ support for moving the camera around
BAGEL
_ where do the 'error line is 9' messages come from?
_ these are runtime errors inside bagel code, how to trap?
_ get web documentation back into cvs
_ have to get rid of static i/o stuff before porting to c
_ may also need to get rid of floating point constants
_ area copying function: copy(x1, y1, w, h, xto, yto);
_ should math functions be moved in?
_ this could help porting, and sanity in processingapplet
_ io functions might be treated similarly
_ some method of moving between
_ center oriented: x, y, radius (3D style)
_ and 2D style: x1, y1, x2, y2
_ or x, y, diameter
_ build in second matrix type: 2d affine
_ add convex polygon type
_ sketch in antialiasing functions
_ how does color depth work on ipaq? 4-4-4? 5-6-5?
_ font usage/substition solution
_ java freetype? jni freetype to build texmap fonts?
_ look at flash file format? (does it have kerning?)
_ simpler bitmap fonts w/o smoothing, just 2D
_ alpha blending (easier)
_ antialiasing
BAGEL - SHOULD
_ bresenham (flat) oval function
_ setting accuracy of circles/sphere
_ setting accuracy of curve segments
_ write shearing function
_ optimize rotation functions
_ test winding polygons in different directions
_ test lighting to see how it compares with gl
_ non-homogenous colors for beginShape()
_ currently disabled b/c homogenousColors not set false for vertices
_ and code not written for curve vertices
_ better lockout inside beginShape() to keep other things from happening
_ when stroke in use, stroke letters (currently stroke doesn't affect
DOCS / ADVANCED
_ adding lights
_ control of position/color of default lights
_ controlling camera movements
_ multmatrix/identity
_ constants besides PI, TWO_PI
_ min/max with 3 parameters
_ if (a) ? 3 : 4
_ formatting printf-style things
_ audio input
_ audio synthesis
_ just saying 'millis' in processingapplet, instead of getMillis()
_ keyPressed, keyReleased, mousePressed, mouseReleased
BUG WATCH
_ getMillis() returning 0 in some instances/on some machines
PROCESSING - FEATURES
_ run code with a main() that's not a processing applet
_ want emacs-style editor that's faster loading than emacs
_ regexps: http://javaregex.com/cgi-bin/pat/tutorial.asp
_ a better editor:
_ syntax coloring
_ emacs indents and key commands
_ http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/je/index.html
PROCESSING - LOWER
_ tweak updater a little bit so it's more likely to work
_ use numbered versioning?
_ give updater feedback (progress dialog, error msg)
_ move math functions into utility library associated
_ with bagel, because those will be useful on other bagel platforms
_ perlin noise function
_ make some kind of internal color picker
_ could be a separate window that's always around if needed
_ save window x, y, width, height to pde.properties on exit
_ bagelpublic.pl: open ProcessingApplet, rewrite after special token
_ look at glut for other needed shapes
_ make PdeEditorButtons wait until mouseup to change
_ (currently doesn't feel as good as it could)
_ licensing issues with kjc (before public release)
FEEDBACK
_ mcguffin - camera control
_ mcguffin - commands/parameters for code, simple ui for manipulating
ENV
_ env. toggle for showing a function name each time its hit
_ env. toggle for showing line numbers within a function
_ i'm here messages, tie in with breakpoints for debugger
_ lightweight debugger, doesn't slow down, runs in back
_ env. toggle to show attr/value for some var in simple way
_ comments as debugging descriptors, output to console, shown in context
_ comments as naming for shapes drawn after it,
_ or some other model of naming based on inserted text with "" or // or #
_ could fit nicely with printf-style statements and comments
_ comments would contain descriptions //!blah for printing and formatting
_ sketchbook - doodling/scribbling area.. since wacom tablet easily accessible
---------------------------------------------
// ability to write data other than image into the buffer
// pixels won't go away, embrace pixels in sophisticated way
// lists of names of objects, or the 'line number' buffer
// maybe user can introduce new kinds of buffers at will (!!!)
// better 3D for valence/illustrator output:
// sorting of polygons/lines on simple painters algorithm
// better lighting model to show darkness at various depths
// maybe just ultra-high res bitmaps from gl
// drawLine vs moveto, lineto
// less of a deal, until fillpath, since that needs to store the
// last several points. but maybe if it's inside a begin/end
// then it's no big deal, and it's easy to implement
// when casting to an int, should 0.5f be added first
// functions that take 2d arguments are drawn on the
// z = 0 plane, and not affected by current 3D transform matrix
---------------------------------------------
code tidbit:
String binary(int value) {
return "" + (((value & (1 << 7)) == 0) ? '0' : '1') +
(((value & (1 << 6)) == 0) ? '0' : '1') +
(((value & (1 << 5)) == 0) ? '0' : '1') +
(((value & (1 << 4)) == 0) ? '0' : '1') +
(((value & (1 << 3)) == 0) ? '0' : '1') +
(((value & (1 << 2)) == 0) ? '0' : '1') +
(((value & (1 << 1)) == 0) ? '0' : '1') +
(((value & (1 << 0)) == 0) ? '0' : '1');
}
---------------------------------------------
0011
X image(img, x, y) was broken for unwarped mode, disabled it
0010
X add java.* to top of processingapplet default base class used by kjc
X KjcProcessingApplet is dumb, kjc should make subst itself
o give warning when compiling w/o kjcprocessingapplet
X random bug with an extra line being added in beginner mode
X (threw off error markings)
X z=0 shit, 2D stuff needs to draw over z=0 plane
X new objects draw behind old objects with noBackground()
X fix crappy way of determining if inside a class--ignores comments
X hope this fis works.. not tested much
X make acu fonts work again
X write code to use simple bitmap fonts
X add a file with bugs for testing
X kjc not smart enough to just compile things that are in classpath
X redo random functions in processing applet
X strangeness with stroke when a rect goes off outside the window
X rect now uses x, y, width, height instead of x1, y1, x2, y2
X circle has been replaced with ellipse (uses xywh)
X box takes diameter, or width, height, depth [NOT IN CPP]
X sphere is the same as box [NOT IN CPP]
X got rid of colorscale and using colormode for all instead
X make changes in documentation
X 'ellipse' instead of 'oval'?
X make note in documentation
X catmullrom is broken
X write documentation for new curve functions
o make note in docs about removal of LINE from LINES
X setting origins
X should shapes draw from center or from upper left?
X should ovals use radius or diameter?
X should shapes use x1, y1 - x2, y2 or x, y, w, h?
X nice to have a random number generator between -1..1
X as well as an integer random; instead of just 0..1
X show creas how to get access to cvs
X documentation says 'mouseDown' even though it's 'mousePressed'
X font support
X use gzip to compress bitmaps (made 115k vlw font -> 16k)
X loadImage/loadFont or getImage/getFont?
X text(char c), text(string s)
X current acu fonts are broken
X image support
X image() and 2D/2D affine versions of it
X no stroke should show up on image()
X fill being set on image() produces weird results
X has to be set, but doesn't actually affect color
X min() seems funny/unavailable
X worked fine for me
0009
X bagel fixes
X beginShape(POINTS) is not working, no marks are appearing
X this was a pain in the ass to fix
X beginShape(LINE_LOOP) is not looping around
X stroked POLYGON should emulate a LINE_LOOP
X fill white, stroke black, background white default in bagel
X remove duplicates: LINE/LINES etc
X 'draw mode' applet support
X 'advanced' applet support
X write documentation about having to use 'extends KjcProcessingApplet'
X add a note about editor.expandTabs,balanceParens,tabSize,autoIndent
X also add note about paren balancing doing strange things
X leave the others turned on, but parens off by default
X enable/disable full screen leaves windows in back
X (may just require two toFront() calls)
X whenever background is frontmost, have it call tofront on editor
0008
X ctrl-s does 'save', button on toolbar does 'save as'
X fixed auto-indent bug for editor
X SimpleSerialDemo.pde had a bug (was old version)
X re-enabled key commands for editor (tab expansion, auto-indent)
0007
X serial bugs
X ability to control sleep time from simple
X message[] not buffer[]
X synchronize
X signed byte crap is confusing, make into chars
X bk(n), fill(n), stroke(n) should be consistent with tuples
X make notes in serial docs
X processing app needs to start first
X currently a bug requiring stop the close before starting
0006
X get serial i/o code working in processing
X how to kill serial when applet stopped
X finalizer prolly not getting called
0005
X running out of memory, presumably b/c applets not being cleared
X happens inside init() of applet (at new Bagel())
X figure out why threads aren't actually dying
X disassociate processing applet with a window on stop?
X possible to maintain bagel, but kill applet?
X or copy bagel's image, and kill that too?
0004
X put debugging stuff back into Kjc (i disabled some stuff)
0001
X convert documentation to html
o setup imrf linux machine?
DISCARD
o get proce55ing.net, make that the target launch site
o write a dbn compatability mode (forever() instead of loop() ?)