ββββββ βββ βββ βββββββββββββββ
ββββ ββ ββββ βββββββ β β βββ ββ
βββ β ββββ βββββββββ β β ββββ ββ
ββββ ββββββββ ββββββββ β β ββββ β
β βββββ βββββββββββββββββ ββββ β
β ββ β ββ βββ βββ β β β ββ
β β β β β β β β β β
β β β β β β β β
β β β β β
β
Browser-based ASCII Art VJ Software
A project by crashserver.fr
- TRY IT LIVE HERE*
So basically this is the js port of : https://github.com/CrashServer/clift_terminal
β οΈ This software is in active development.
Code is messed up. I might correct and make it usable. emphasis on might.
If you want to support : https://coff.ee/crashserver
ββββββββββββββββββββββββββββββββββββββββ
β CLIFT: future proof, ascii vjing β
β for yesterday β
ββββββββββββββββββββββββββββββββββββββββ
- 180+ ASCII Art Scenes - From geometric patterns to glitch effects
- 9 Experimental Render Modes - Including 3D ASCII with depth mapping
- 17 Post-Processing Effects - Blur, glitch, emboss, and more
- Dual Deck System - VJ workflow with crossfader mixing
- Real-time Audio Visualization - Microphone input with beat detection
- glowy stuff
- ASCII - Classic terminal-style rendering
- Surface - Height-mapped 3D surfaces
- Mesh - Connected wireframe rendering
- Particles - Dynamic particle systems
- Lines - Flowing line art
- Dots - Pointillism effects
- Waves - Fluid wave simulations
- Plasma - Retro plasma effects
- 3D ASCII - Characters with Z-depth and connections β¨
- Microphone Input - Real-time audio analysis
- 4-Band FFT - Bass, Low, Mid, High frequency visualization
- Beat Detection - Automatic rhythm analysis
CLIFT Web is optimized for Mozilla Firefox and provides the best performance and compatibility. It should maybe work on chrome but might not. Especially audio reactivity.
- Enable Audio - Click the microphone button (allow browser permissions) - important !!!
- Select Scenes - Use category/scene controls for each deck
- Choose Render Mode - Toggle through 9 different rendering styles
- Mix Decks - Use crossfader or trigger transitions
- Apply Effects - Add PostFX for glow and color grading
- Space - Play/Pause
- T - Trigger transition
- A - Toggle audio
- F - Toggle fullscreen
- R - Start/stop recording
Enables a random thing that goes exploring all possibilies.
- Scenes - Automatic scene changes
- Effects - Cycling through visual effects
- Crossfade - Animated deck transitions
- PostFX - Color and glow automation
- Experimental - Render mode cycling
- Colors - Palette automation
- Subdivision - Timing control (1-16 beats)
- Pure JavaScript - No frameworks, no dependencies
- Web Audio API - Real-time audio processing
- Canvas 2D - High-performance ASCII rendering
- WebGL PostFX - Hardware-accelerated effects
- MediaRecorder - Built-in video recording ** more or less reliable
clift-web/
βββ index.html # Main application
βββ clift-engine.js # Core rendering engine
βββ clift-scenes-final.js # 190+ scene definitions
βββ clift-effects.js # Post-processing effects
βββ clift-audio-enhanced.js # Audio visualization
βββ clift-postfx-clean.js # WebGL post-effects
βββ clift-recorder.js # Video recording
βββ clift-websocket.js # Live coding support
βββ clift-mobile.js # Mobile optimizations
Scenes follow this pattern:
CLIFTScenes[sceneNumber] = function(buffer, width, height, time, params) {
// buffer: 2D array of characters [y][x]
// width, height: Display dimensions
// time: Milliseconds since start
// params: { audioData, beatPhase, bpm, deckParams, ... }
for (let y = 0; y < height; y++) {
for (let x = 0; x < width; x++) {
// Generate ASCII character based on position and time
buffer[y][x] = getCharacterForPosition(x, y, time);
}
}
};// Access audio data
const bassLevel = params.audioData.bass; // 0.0 - 1.0
const beatPhase = params.beatPhase; // 0.0 - 1.0 (beat cycle)
const bpm = params.bpm; // Beats per minute
// Beat detection
if (beatPhase < 0.1) {
// On beat - trigger effects
}- Better Recording - yeah it sucks for the moment
- MIDI Controller Support - Hardware VJ controller integration
- Advanced Scenes - More complex visualizations
- Mobile App - Dedicated mobile interface
- WebSocket - it already more or less there, for live coding text support for example
A lot atm.
We welcome contributions! Please:
- Fork the repository
- Create a feature branch
- Test in Firefox thoroughly
- Submit a pull request
- New ASCII art scenes
- Performance optimizations
- Mobile compatibility improvements
- Bug fixes and testing
MIT License - See LICENSE file for details.
- Project: crashserver.fr
- Issues: Report bugs and feature requests
- Wiki: Detailed documentation and tutorials
Developed by the crashserver.fr team Happy VJing! π΅β¨