A visual node-based programming environment for creating generative audio-visual art in the browser.
Eternal is a visual node-based programming environment that enables creators to build generative audio-visual art directly in the browser. It allows users to define complex audio and visual processes through an interactive graph interface, treating art as procedural descriptions. The tool is designed for aesthetic exploration, inspired by concepts like Sol LeWitt's process art and Brian Eno's 'music as gardening'.
Artists, musicians, and creative coders interested in generative art, procedural music, and exploring the intersection of aesthetics and information processes through a visual programming interface.
Developers choose Eternal for its unique focus on aesthetic expression over theoretical purity, offering a practical tool for real-time audio-visual experimentation with built-in support for GPU acceleration, custom shaders, and MIDI integration—all within a browser environment.
👾~ music, eternal ~ 👾
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes raw synths (sawtooth, sine, triangle), sound file loading, chords, arpeggiators, and MIDI device connections, enabling complex generative music as shown in the 'nude, eternally' example.
Supports GPU-accelerated graphics with custom kernels, GLSL fragment shaders, geometry rendering, and post-processing effects, demonstrated in examples like 'platonic plague' and 'kolmogorov's inferno'.
Offers musical scheduling, scales/chroma, and RNN models for algorithmic composition, making it ideal for exploring procedural music, as seen in 'the music while the music lasts'.
Runs entirely in the browser with a live demo available, allowing users to experiment without installation or setup barriers, using commands like 'yarn start' for local development.
The author explicitly states it's an art project with no intention to support the general public, leading to potential bugs, lack of updates, and reliance on personal interest for maintenance.
Documentation is minimal and poetic, with key concepts in a separate writeup and node docs, making practical development challenging without deep diving into classes like NodeBase and Graph.
As a browser-based tool, it may struggle with intensive real-time audio-visual processing compared to native applications, especially on lower-end devices or for latency-sensitive tasks.