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) + Webassembly for core LOD generation + Webassembly for final buffers + Do not copy memory to wasm, instead use wasm memory to store data in the first place - Z-prepass fringe bug (also, when do we enable the prepass?) - Textured quads (pictures, code already written in older version) - Resize and move pictures (draw handles) + Bugs + GC stalls!!! + Stroke previews get connected when drawn without panning on touch devices + Redraw HTML (cursors) on local canvas moves - New strokes dissapear on the HMH desk - Debug - Restore ability to limit event range * Listeners/events/multiplayer + Fix multiplayer LUL + Fix blinking own stroke inbetween SYN->server and SYN->client + Drag with mouse button 3 + Investigate skipped inputs on mobile (panning, zooming) [Events were not actually getting skipped. The stroke previews were just not being drawn] - Do NOT use session id as player id LUL - Save events to indexeddb (as some kind of a blob), restore on reconnect and page reload - Local prediction for tools! - Be able to have multiple "current" strokes per player. In case of bad internet this can happen! * Missing features I do not consider bonus + Player pointers + Pretty player pointers + Player list + Follow player + Color picker (or at the very least an Open Color color pallete) - EYE DROPPER! - Dynamic svg cursor to represent the brush - Eraser - Line drawing - Undo/redo * Polish + Use typedvector where appropriate - Show what's happening while the desk is loading (downloading, processing, uploading to gpu) - Settings panel for config values (including the setting for "offline mode") - Set up VAOs - We are calling "geometry_prepare_stroke" twice for some reason - Presentation / "marketing" - Title - Icon - Product page (github readme, demo videos) Bonus: * Handle pressure + Add pressure data to quads + Account for pressure in quad/bbox calc * Adjust curve simplification to include pressure info - Migrate old non-pressure desks - Check out e.pressure on touch devices - Send pressure in PREDRAW event - Curve modification - Select curves (with a lasso?) - Move whole curve - Move single point - Move multiple points - Customizable background - Color, textures, procedural - Further optimization - Draw LOD size histogram for various cases (maybe we see that in our worst case 90% of strokes are down to 3-4 points) - If we see lots of very low detail strokes, precompute zoom level for 3,4,... points left Bonus-bonus: - Actually infinite canvas (replace floats with something, some kind of fixed point scheme? chunks? multilevel scheme?)