# NOW ## Chores - Node groups ## Compositor - Manage Resources - Samplers - Blender previews (important !) - Video import (research opencv libavcodec etc) - maybe https://superuser.com/a/1397578 -- no portable way to get stdout, this is messed up - boost::process? idk, might as well just go through a file - Use BG thread to check timestamps for hot reloading - Data models - Dump and read back state, (de)serialization!!! - Pre-compose/Layer Groups (jokes -- can be completely UI side) - Motion blur - Non-negotiable - Text (idea: index-based evaluation in plugboard) - Non-negotiable - Shapes (idea: embed glisp :mmtroll:, need to inquire -- still a lot of friction for simple shapes if we don't also get the glisp gizmos) - Non-negotiable - External data driving (csv, json or something else?) -- use a node to select source ## UI - Key selection in comp panel - Graph editor - Node loop detection (separate DFS (extra work) or be smart in recursion) - detect time-sensitive nodes in tree and display on timeline # Later ## IO - File dialogues pending SDL3 - https://wiki.libsdl.org/SDL3/CategoryDialog - OIIO output for more than PNG's - don't care about video export -- leave it for ffmpeg ## Compositor - std::unordered_map -> std::flat_map pending compiler support - Simple 3D engine ## UI - Adapt nodes for shader graph -- code editor will be fine for now - Viewport gizmos (Layer-specific & nodes -- can separate into different tools?) -- Not sure how to go about this - Baku vec2 drag is good, color drag is not so necessary because imgui has a good picker ## Audio - Wait for SDL3! - SDL_mixer will be able to do all of wav ogg flac mp3 opus, we live in good times - output needs to be handled differently (if we care at all -- likely not)