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.

Implementation

Environment: Max/MSP/Jitter

Libraries: IRCAM SPAT5, Ableton Live Devices

Logic: Persistence-triggering loops utilizing jit.3m and gate logic.

Created as part of the "Multimedia Languages" course at NABA University under the supervision of Prof. Giorgio Delfo Sancristoforo.

Create a free website with Framer, the website builder loved by startups, designers and agencies.