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 + SIMD for LOD? + Multithreading for LOD + Textured quads (pictures, code already written in older version) - Z-prepass fringe bug (also, when do we enable the prepass?) - 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 - Color picker misses on strange line endings - 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] + Smooth zoom + Infinite background pattern - Be able to have multiple "current" strokes per player. In case of bad internet this can happen! - 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! * 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 - Undo for images - 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 (InfiNotes?) - 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 + Dots pattern + Grid pattern - Menu option Bonus-bonus: - Actually infinite canvas (replace floats with something, some kind of fixed point scheme? chunks? multilevel scheme?)