Release: * Engine + Benchmark harness + Reuse points, pack "nodraw" in high bit of stroke id (probably have at least one more bit, so up to 4 flag configurations) - Draw dynamic data (strokes in progress) - Textured quads (pictures, code already written in older version) - Resize and move pictures (draw handles) - Z-prepass fringe bug (also, when do we enable the prepass?) - Restore ability to limit event range - Only upload stroke data to texture as it arrives (texSubImage2D) - Listeners/events - Investigate skipped inputs on mobile (panning, zooming) - Save events to indexeddb (as some kind of a blob), restore on reconnect and page reload - Separate events and other data clearly (events are self-contained, other data is temporal/non-vital) - Do NOT use session id as player id LUL - Local prediction for tools! - Drag with mouse button 3 - Missing features I do not consider bonus - Eraser - Line drawing - Player screens/pointers - Follow player (like Ligma) - Color picker (or at the very least an Open Color color pallete) - Undo/redo - Dynamic svg cursor to represent the brush - Polish - Show what's happening while the desk is loading (downloading, processing, uploading to gpu) - Settings panel (including the setting for "offline mode") - Presentation / "marketing" - Title - Icon - Product page (github readme, demo videos) Bonus: - Handle pressure - Add pressure data to quads - Draw capsules instead of segments - Adjust curve simplification to include pressure info - Curve modification - Select curves (with a lasso?) - Move whole curve - Move single point - Move multiple points - Customizable background - Color, textures, procedural Bonus-bonus: - Actually infinite canvas (replace floats with something, some kind of fixed point scheme? chunks? multilevel scheme?)