Industry
Interactive Systems
Dynamic ASCII Procedural Generator
Overview
The ASCII Procedural Generator is a high-performance interactive system that transforms real-time video feeds into dynamic, text-based visual art. Developed within the Creative Media Production framework at NABA, this project explores the intersection of retro-digital aesthetics and modern procedural workflows.
Key Features
21 Independent Mapping Fields: Granular control over the tonal-to-character distribution.
Real-Time Camera & File Input: Support for live streaming or pre-recorded video assets.
Custom ASCII Presets: Switchable libraries of symbols for diverse aesthetic outcomes.
Technical Highlights
1. Custom UI & State Management
Modular Interface: A specialized control panel featuring 21 independent Field COMPs for manual character mapping.
Persistent Serialization: All user configurations and file paths are stored in Table DATs, ensuring data persistence across sessions.
Binding & Logic: The UI uses a Binding system to sync parameters, with custom Python logic to override and force values when necessary.
2. Python Backend
Direct DAT Manipulation: To bypass standard UI latency, the system uses direct cell assignment (
op('string')[0,0] = val) for high-speed updates.Dynamic Preset Engine: A dictionary-based script architecture allows users to swap between four distinct character sets (from minimal ASCII to complex Braille patterns) via a single dropdown menu.
Automated File Management: An integrated file browser utilizing
ui.chooseFile()automatically updates the Movie File In TOP while logging the absolute path for project portability.
3. Visual & Audio Synthesis
Signal Processing: Includes controls for Pre-Shrink, Contrast, and Depth to optimize video signals for character legibility.
Audio-Reactivity: A low-latency audio analysis module (Low, Mid, High) allows the ASCII grid to pulse and react to live sound input.
GPU Optimization: Optimized to maintain 60 FPS by leveraging TouchDesigner’s pull-based cooking and GPU-native texture handling.