Skip to content
Development Guides

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.