processing todo list (most up-to-date version of this file is in processing cvs) PEOPLE WHO WANT IT christophe buffet Eric ANDRON Michael Davis andres d.amarel Daniel Evan Schwartz Roger Langley Roy Macarthur Fabrice Clérot "Daniel Mendelsohn @ Heads4Sale" Michael McGuffin 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() ?)