Monorepo for Aesthetic.Computer aesthetic.computer
README.md

KidLisp Tools#

Tools for analyzing and debugging KidLisp pieces.

source-tree.fish#

Analyzes KidLisp pieces and displays their embedded layer tree structure along with performance characteristics.

Usage#

./source-tree.fish <piece-name>

Examples#

# Analyze the $cow piece and its embedded layers
./source-tree.fish cow

# Analyze a specific embedded layer
./source-tree.fish 39i

# Works with or without $ prefix
./source-tree.fish $r2f

Features#

  • 📁 Tree Structure: Shows hierarchical structure of embedded layers
  • 📄 Source Preview: Displays first few lines of each piece's source code
  • 🔍 Performance Analysis: Identifies expensive operations (blur, zoom, contrast, etc.)
  • ⏱️ Animation Detection: Detects timing expressions and animations
  • 🎲 Randomness Detection: Identifies pieces using randomness (?)
  • 📊 Layer Count: Shows how many layers a piece embeds

Output Explanation#

  • 📁 - Piece with embedded layers
  • 📄 - Simple piece (no embedded layers)
  • ⚠️ - Contains expensive operations that may impact performance
  • - Clean piece with no expensive operations
  • ⏱️ - Contains animations (timing expressions)
  • 🎲 - Uses randomness
  • - Piece not found

Performance Analysis#

The tool automatically detects these expensive operations:

  • blur - Gaussian blur effects
  • zoom - Scaling transformations
  • contrast - Contrast adjustments
  • spin - Rotation animations
  • flood - Flood fill operations

Use this information to understand why certain pieces may have slower initial frames.

Requirements#

  • fish shell
  • curl
  • Local dev server running (npm run dev)
  • Access to https://localhost:8888/.netlify/functions/store-kidlisp

Development#

To add new analysis features, modify the analyze_performance_features function. To improve parsing, update the extract_embedded_pieces function.