This is a rough proposed outline of tasks to work on for the code quest (based on discussion between @campbellbarton & @sergey).
Note: comprehensive design docs should be linked from here //(not inlined here)//.
## Interface
* COW display evaluated data, edit original.
## Depsgraph
* Building depsgraph from an arbitrary ID block.
** This can be used for efficient calculation of motion paths.
** Viewport motionblur
** Sequencer prefetch rendering frames (in threads).
* Performance (investigate)
* COW
* Get input from Sergey for detailed planning.
## Modifiers
* Remove derived-mesh
## Layers
* UI (design)
* Check Performance
For larger scenes current layer system likely has poor performance
given the way linked lists are used.
It would be good to measure what the difference w/ 2.7x is,
if this is something to address, set as TODO or if we can leave as-is.
* Moving between layers
* Best get input from Dalai
More work is needed to finish this off, not sure how much.
* How do set-scenes work w/ layer visibility?
## Asset Manager?
Make it part of code-quest???
* Needs discussion w/ Bastien (just focus on this until it's done?).
Suggest to finalize design w/ UI guys, can fix technical issues later.
## Drawing Code Basics
* Workbench Engine
* Add back some missing options? - xray, wireframe.
* OpenGL selection has remaining bugs
Maybe small, need investigaion.
* Sculpting Bugs
* Performance (investigate)
* Clipped output (alt-b)
## Drawing API's
* Resolved fixed buffer size for immediate mode.
* GPU - cleanup naming, remove deprecaed API's.
* Move to GPU (use BLI_threads) Use blender's code style.
* Wayland (ok after code-quest!)
## Overrides
* UI Design
* See: Bastien, Dalai for UI, more development, testing.
Depends on COW.
* Access from Python (for later).
## Workspace
* Topbar design (keep redo panel where it is)
* Fix crashes in scene linking.
* Finalize object mode design & stabilize.
* Finalize bare minimum for release, possible extras.
## Operators
* Port to COW
* Undo system restructure and make linear (optional)
* Multi-object edit-mode (optional)
## Tools
* 101 Project, design is needed.
## Manipulators
* UI Design
Reevaluate existing design. check if any changes are needed.
* More work to do, polish, usability, continued development.
* Confirm current API design is OK to go ahead with.
We could re-evaluate a handful of minor things.
* Use to replace notifiers over the rest of Blender.
## Python API
* COW support
At least exporters should export evaluated data>
* Various minor changes T47811 (best handle after the code-quest).
* Update all add-ons (again, after code-quest)
## Versioning
* Tests loading complex production files.
Ensure basics are supported & no crashes.
* Check if we can make 2.8 files load in 2.7x
On basic level, all layers visible.
## Refactor
* Split some files to help w/ merge conflicts
Check files over ~3000 LOC, also use common sense!
* CMake: remove BLENDER_SORTED_LIBS P522
## Sequencer
* Scene strips w/ COW, layers.. drawing engines?
* Make breaking changes
** Transform especially has very strange behavior
** Remove grading in linear space option.
* FUN: Camera navigation in sequencer (optional).
(pixel based options making output at different sizes confusing)
while we dont have time for a large project, we could improve things we know are bad-by-design.
* Prefetch frames (optional, nice to have, fits nice w/ COW)
## Physics & Particles
* Bring back 2.7x level of support
Make the modules a blackbox, keep existing files working-ish.
## Remove Features
* Blender Internal!
* Texture Nodes (redo or remove - currently)
* Armature Sketch
* Mesh Legacy Format (pre BMesh).
* Remove tessface
** Cycles: use looptri (detect quads if needed).
** Remove from RNA: Python IO needs updating
** Particles: We need operator to re-distribute to tris (can't do in readfile).
** BVH utils uses still.
* Remove non-triple buffer drawing.
* Screen Capture
* Frame Server
* AVI-RAW/JPEG
* BGE & Player
Replace with interaction mode.
# After Code-Quest Topics
## Nodes
* Move cycles away from hard-coded C definitions.