Ana Software Architecture
This section covers the foundational concepts and components of Ana's software architecture.
Topics
- Basic Components: The fundamental building blocks including graphs, nodes, packages, and volumes, and how they interact during execution.
- Graphs: How flow-based programs describe synthetic data generation pipelines, stored as YAML files containing nodes, values, and links.
- Channels: The top-level project structure that bundles packages, data, graphs, and configuration into a deployable unit.
- Packages: Collections of nodes that provide the building blocks for graphs, following Python packaging conventions.
- Package Volumes: External storage for large asset files such as 3D models, textures, and reference materials that packages depend on.
- Nodes: The Python classes that implement individual processing steps within a graph, inheriting from the base Node class.
- Schema: YAML-based definitions that describe the inputs, outputs, and GUI presentation of each node.
- Ana Modules, Classes, and Functions: The core library components including the Context Module, Node Class, AnaScene, AnaObject, and helper utilities.
- The anatools Package: The built-in package of utility nodes available in every channel for common tasks like random value generation and volume file access.
- Graph Validation: The validation system that checks graphs against JSON Schema rules and Rendered.ai extensions before execution.
- Preview: How to prepare a channel to support preview mode for rapid iteration during development.
- In-tool Help: The documentation system that surfaces help text, thumbnails, and markdown documentation directly within the platform interface.

