QUESTIONS _ is it necessary to have fullscreen option on toolbar anymore? _ what's better than POLYGON_CONVEX and POLYGON_CONCAVE? _ should we use jdk 1.3 or msft vm? BAGEL / high BAGEL / high & time consuming _ rewrite line and stroke code, it's a buggy mess _ lines become 2 pixels thick after a 3D transform _ better handling of single-pixel special case _ anti-aliasing _ alpha _ concave/complex polygon shtuff _ eventually POLYGON auto-detects convex/concave polygon _ also add POLYGON_CONVEX and POLYGON_CONCAVE _ z coordinates are backwards from gl (at least from mazo) _ how did this happen? what's the appropriate way to fix? BAGEL / medium _ area copying functions _ copyPixel(x, y, to_x, to_y) _ copyArea(x, y, w, h, to_x, to_y) _ copyImage(x, y, w, h, to_x, to_y) _ NullPointerException apparently when things way offscreen _ i.e. glyphrot with scale set to 4 _ or at least that things get ridiculously slow _ clipping issues here.. but also something in scan converter _ not clipping areas from offscreen _ huge geometry slows things way down _ if BagelImage doesn't load, then image() calls arrayindexoutofbounds _ better solution for this (error while opening image) _ and document how image loading works BAGEL / medium & time consuming _ picking _ ability to write data other than image into the buffer _ user can introduce new kinds of buffers at will (!) _ lists of names of objects, or the 'line number' buffer _ but how to determine *where* on object the hit occurs? _ illustrator exporting _ version of Illustrator.java that uses bagel api _ 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 BAGEL / lower _ move math functions into utility library associated _ with bagel, because those will be useful on other bagel platforms _ pApplet will call BagelMath.whatever, so still looks like cos() _ perlin noise function _ build in second matrix type: 2d affine _ make sure line() commands don't try to have a fill _ write code for reading uncompressed b/w tiff images _ incorporate for fixed width fonts _ 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 _ try with 1.4 frame buffer stuff to see if it's faster _ will 1.4 work on osx? _ way to screen grab at higher resolution _ method for rendering at higher res and then scaling down _ (even if this causes signficant performance hit) _ look at glut for other needed shapes _ setting a fill color when drawing an image should affect the image _ or maybe image.setColor or setTone to mix a specific color in _ live video editing, wanting things more procedural PDE / high _ get rid of 'kill' button _ add frame to launched window _ add maximize event catcher to make fullscreen _ shift-click on play to go directly into this 'presentation mode' _ introduce pImage, pFont, pGraphics, pConstants (pSound) _ serial.messageReceived extra long crap in demo.pde (clean up?) _ NullPointerException on startup in pde editor buttons _ shows up on slower machines, probably images not loaded yet _ int version of min and abs _ fix bugs from the 'bugs' file _ then remove the file from cvs _ draw mode needs to be better for workshops _ 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 _ lines being highlighted for errors are off _ use a vm that won't destroy the screen like sun/ibm does _ this means msft or newer version of jdk PDE / high & time consuming _ exporting to applet/.jar file _ 'data' directory for all media _ include other .class files built besides the main one _ include referenced image and font files (can't do if numbered) _ exporting applets that have custom name problems: _ if extends processingapplet, the name user types must be same _ gets confused about paths and puts boogers in weird places _ doesn't compile correctly (must first compile with play) _ doesn't include additional (private) classes _ when exporting 'name of folder for export...' _ default name should be from public class _ because otherwise errors are happening _ or name from user only determines folder name _ if extends ProcessingApplet [more compatible] _ make sure export is compiling first _ right now have to hit play and then hit export (?) _ include main class info for executable jar file with jdk > 1.2 _ remove .java and .class files for compiled classes _ (just clean up the boogers afterwards) _ it's really a pain to use external files in processing _ getStream sucks (zach rewrote) _ should be able to work for application or applets _ may want to use getResource() (to get things from .jar files) _ having to put 'f' after everything is a mess _ related classes _ better way to do parent and g.rect stuff in related classes _ implement g. passed into any function called draw() _ also important for things like cos, sin, max etc _ but maybe once you're doing more advanced code, that stuff's ok _ or using inner classes is better b/c class stuff works _ related classes also need to implement pConstants _ sketchbook _ 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, check for new files on compile? _ serial works poorly for starting/stopping applets _ this is behaving strangely _ breaks on every 2nd run when using serial apps (or others?) _ try calling gc on stop as well PDE / high but after initial pre-release _ class unloading not happening _ when doing an extends ProcessingApplet _ need to add randomizer to even non-self gen'd classes _ or figure out how to unload old classes.. grr PDE / medium _ Compiler.disable() message is weird and doesn't always work _ probably just remove it for now _ kjc is really frustrating about some of its error/warning msgs _ 'var not set' any way to disable these? _ font usage/substition solution _ write code to bind/convert java fonts _ best would be freetype or jdk 1.3/1.4 _ java freetype? jni freetype to build texmap fonts? _ look at flash file format? (does it have kerning?) _ version of ProcessingApplet that replaces g. with ai. or pdf. _ include stdout/stderr in the processing window _ option to toggle window on/off (not just in properties, but realtime) _ set # of lines in properties _ play button not really working _ never un-highlights, especially with exceptions _ also when using draw() instead of loop() _ applet needs to notify runner that it has terminated _ look into using serialporteventlistener for simpleserial _ may help with problems due to threading/synchronizing _ lib/pde.properties should be read using getResource _ otherwise path issues cause trouble (likely under win98) _ make PdeEditorButtons wait until mouseup to change _ (currently doesn't feel as good as it could) _ check logs to see where we're getting traffic from _ licensing issues with kjc (before public release) _ support for moving the camera around PDE / medium & time consuming _ talk to simon about error streams and kjc _ better piping of output from kjc _ modify kjc to take a PrintWriter, instead of current weird hacks _ erroneous errors from kjc regarding 'var not inited' _ is there any way to disable this message? PDE / low _ if 'void' left out before loop or setup, cryptic message about _ 'constructor loop must be named Temporary_23498_2343' _ add a better handler for this specific thing? _ shouldn't do so much work (redrawing in loop) if waiting for input _ mode for when no full animation taking place _ otherwise machine is continually maxed out while app is running _ quicktime exporter or image sequence export _ fairly quick--just use code from dbn _ bug in paren balancing _ paren problems comes from overusing parens (too many closing) _ image[first[i], 0, 0) hitting last paren causes jump to top _ export as application _ not difficult to do, just some tweaking once applet export works _ wrapper that invokes the applet using a copy of the jre _ main() method needs to set layout manager if jexegen is to be used _ (msft vm defaults to null layout manager) _ also make sure pack() is happening _ stop() method in applet should stop kjc environment _ should be able to call stop() to 'quit' an applet _ make close() work to kill applet in kjc _ save window x, y, width, height to pde.properties on exit _ stderr in red color _ run java code besides processing applets _ if not processing applet, look for a main(), no main give an error PDE / features _ might be nice to have some notion of plugins for pde _ color picker or other things written by folks _ add all .jar files in lib/plugins on startup _ make some kind of internal color picker _ could be a separate window that's always around if needed _ 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 _ want emacs-style editor that's faster loading than emacs _ tweak updater a little bit so it's more likely to work _ use numbered versioning? _ give updater feedback (progress dialog, error msg) PDE / science fiction _ toggle for showing a function name each time its hit _ 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 _ 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 _ look into maxx programming _ single or multi-file cvs, not based on directories _ i.e. i want illustrator.java for a project _ version # stored in .java file _ if a new version is available, asks 'do you want to update?' _ multi-file: quicksort + sortable _ check out interface builder for interesting tidbits MISC / macos _ crashes when people click on help in top bar (same in DBN) _ dataInputStream, setUseCaches on the url to false _ URLConnection.setUseCaches(false) _ parent.obj.close() on the url _ serial port code needs to be implemented _ something that docks better to java serial api MISC / building _ build a linux/x86 release _ write converter for java bagel -> cpp version _ include #ifdefs for c stuff _ fix buzz.pl to not create ../../bagel _ how to use ssh identity file to maintain auth for brancusi _ write dist.bat for releases _ don't forget to update 'export' dir with processing releases _ write code for automatic macintosh releases MISC / docs _ 'rot' example not working in release 18 _ list of reserved keywords _ make note of functions/variables used by ProcessingApplet _ using them in your app will break things (i.e. init()) _ 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 _ image formats supported (gif and jpeg) _ notes about running on win98 and that stupid startup exception _ make note in documentation about convex polygons MISC / advanced docs _ adding lights _ control of position/color of default lights _ controlling camera movements _ mcguffin sent some notes about this _ 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 MISC / ui _ ui for sketchbook/projects handling MISC / web _ see about setting up simple bug tracker/feature system _ queue for people reporting things externally _ bugzilla but simpler _ would also be nice for people to be able to vote on features MISC / technotes _ bug in sun vm for freaking out _ also happened with ibm vm.. grr.. (or was it a path problem?) _ fixed width font format as technote and how to use _ using runtime.exec to run .ai files _ code to automatically open generated .ai files (exec(..ai)) _ debugging serial code _ hyperterminal - watching for binary garbage vs ascii text _ first debug (maybe even using ascii) and watch in hyperterminal _ or ship pooterm along with processing _ flicker - often ascii instead of binary _ timing of sleep, size of message, timing of write _ starting processing first, then stamp _ using transformPoint _ using curves _ making things faster _ memory running out, using ms and mx _ noBackground() if you're covering everything _ converting to/from ascii/decimal/hex/binary MISC / code tidbits for scrapbook _ 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 _ quicksort should probably just be made into 'sort' class _ it's the only one ever used _ stringutils.split is a useful one _ readFileLines et al _ translateMiddle() ? to move to the middle of the screen? MISC / things that break often/things to test _ handling of key events (both as applet and in application) _ per-vertex coloring for different kinds of shapes _ that each shape type works as expected _ what if one short or one too many vertices? _ transforms are affecting geometry _ i.e. are line and point working in 3D? 0020 (first semi-public release) (after first release) (necessities for book) _ audio output (play wav, au, aiff(?), mp3) _ alpha, anti-aliasing