Skip to content

[TRACKING] ARCHITECTURE.md #401

Description

@rambip

Unfortunately, having a good, up to date architecture file is very hard to get right.

Content

Here are a few things that would be useful to store in it:

  • Mobject -> Scene -> Timeline -> Renderer loop. Where async is. _geometryDirty VS _markDirtyUpward. Timing and how add does not render but play does.
  • interpolate for animations, what to do before and after animation occurs, rate functions.
  • Taxonomy of all main classes (MObject, VMObject, Group, VGroup and other) with properties we want for each.
  • threejs interactions: rotation, transforms, normalizeTransform (I'm currently still working on it), when are points updated VS only transforms. Really insist on how synchronization happens.
  • Specific MathTex rendering VS images, where is the async stuff, what can go wrong when not loaded
  • MasterTimeline opacity invariant (seek / update / opacity). Maybe we can improve the logic though.

Insisting on what are the fundamental constraints, and what are implementation choices that can evolve in the future.

Structure

  • 2 parts per topic: invariants, and current implem details
  • insist on complete flow of how one object is rendered with a specific example like group (but repetitions with the rest ?)
  • avoid descriptive, use prescriptive. Like in the taxonomy: say what you are allowed to do in each class.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions