Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Composition Over Convenience

You began with a simple problem. How do I turn a Python function into a Blender add-on? Along the way, you built something larger. You learned:

  • How to declare tools instead of writing operators by hand.
  • How to separate UI from logic.
  • How to separate storage ownership from tool behavior.
  • How to route shared data through a contract.
  • How to compose multiple plugins into a host.
  • How to isolate instances with scopes.
  • How to execute long-running tasks without freezing Blender.
  • How to enforce architectural discipline at build time.

QuickAddon is not a macro generator. It is not a shortcut. It is a structure. The structure enforces:

  • Explicit ownership
  • Declarative inputs
  • Predictable routing
  • Controlled execution
  • Safe composition

You may never need multi-instance scoped hosts. You may never embed a host inside another host. You may never declare a long task. That is fine. The architecture scales down as cleanly as it scales up. The point is not complexity. The point is boundaries. When boundaries are clear:

  • Systems remain stable.
  • Growth remains controlled.
  • Refactoring becomes possible.
  • Composition becomes natural.

You now understand the full loop:

Script
→ Tool
→ Plugin
→ Host
→ System

Everything beyond this point is composition. Build what you need. Refactor when structure demands it. Generate when discipline permits it.

Own your boundaries.