# Examples This directory contains example scripts demonstrating how to use Mainline's features. ## Default Visualization **`default_visualization.py`** - Renders the standard Mainline visualization using the graph-based DSL. ```bash python examples/default_visualization.py ``` This script demonstrates: - Graph-based pipeline configuration using TOML - Default Mainline behavior: headlines source, scroll camera, terminal display - Classic effects: noise, fade, glitch, firehose - One-shot rendering (prints to stdout) ### Configuration The visualization is defined in `default_visualization.toml`: ```toml [nodes.source] type = "source" source = "headlines" [nodes.camera] type = "camera" mode = "scroll" speed = 1.0 [nodes.noise] type = "effect" effect = "noise" intensity = 0.3 [nodes.fade] type = "effect" effect = "fade" intensity = 0.5 [nodes.display] type = "display" backend = "terminal" [connections] list = ["source -> camera -> noise -> fade -> display"] ``` ## Graph DSL Demonstration **`graph_dsl_demo.py`** - Demonstrates the graph-based DSL in multiple ways: ```bash python examples/graph_dsl_demo.py ``` Shows: - Imperative Python API for building graphs - Dictionary-based API - Graph validation (cycles, disconnected nodes) - Different node types and configurations ## Integration Test **`test_graph_integration.py`** - Tests the graph system with actual pipeline execution: ```bash python examples/test_graph_integration.py ``` Verifies: - Graph loading from TOML - Pipeline execution - Output rendering - Comparison with preset-based pipelines ## Other Demos - **`demo-lfo-effects.py`** - LFO modulation of effect intensities (Pygame display) - **`demo_oscilloscope.py`** - Oscilloscope visualization - **`demo_image_oscilloscope.py`** - Image-based oscilloscope ## Graph DSL Reference See `docs/graph-dsl.md` for complete documentation on the graph-based DSL syntax.