Monorepo for Aesthetic.Computer
aesthetic.computer
Tape.mjs Usage Guide#
Quick Reference#
The tape tool records KidLisp pieces ($code) into animated GIFs or PNG sequences.
Basic Usage#
node tape.mjs <piece-path> [options]
Examples#
# Record $roz for 120 frames at 256x256 resolution
node tape.mjs '$roz' --frames 120 --fps 60 --resolution 256
# Record $cow for 10 frames at 1024x1024 with timing info
node tape.mjs '$cow' --frames 10 --resolution 1024 --timing
# Export PNG instead of GIF
node tape.mjs '$rose' --png
# Override default 60fps
node tape.mjs '$piece' --fps 30
# Experimental features
node tape.mjs '$roz' --blocks # Block-based processing
node tape.mjs '$roz' --simd # SIMD processing
Options#
--frames N- Number of frames to record--fps N- Frames per second (default: 60)--resolution N- Canvas size NxN (default: 768)--png- Export PNG instead of default GIF--timing- Show detailed timing information--blocks- 🧪 Experimental block-based processing (deprecated, please remove)--simd- 🚀 Experimental SIMD processing (deprecated, please remove)
Output#
- GIFs saved to:
/workspaces/aesthetic-computer/reference/tools/output/ - Filename format:
tape-YYYY-MM-DDTHH-MM-SS.gif - Frame cache:
.tape-frames-cache/(auto-cleaned)
Legacy Format#
node tape.mjs test-complex.mjs 2000 30
# piece-file duration(ms) fps
Notes#
- Requires dev server running on localhost:8888 for KidLisp pieces
- Uses disk-based frame caching for scalability
- Displays 128x128 sixel preview in terminal during recording
- GIF is default export format (PNG optional with --png)
- 60fps default for smooth animations