test-projectm-preset

Validate and render ProjectM .milk presets, then compare screenshots against original WMP captures.

5|Updated Jul 12, 2026
One-click install
npx skills add https://github.com/kugg/wmp-viz-ports --skill test-projectm-preset-kugg
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: test-projectm-preset
Source: https://github.com/kugg/wmp-viz-ports/tree/main/skills/test-projectm-preset
Command: npx skills add https://github.com/kugg/wmp-viz-ports --skill test-projectm-preset-kugg

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Porting Windows Media Player visualizations to ProjectM MilkDrop presets requires repeatedly checking that each .milk file parses correctly, renders without errors, and visually matches the original WMP output. This Skill provides a repeatable workflow for syntax validation, headless screenshot rendering, and quantitative image comparison so preset authors can iterate with objective feedback. ## Core Features & Use Cases - Syntax Validation: Run validate_milk.py against any .milk preset to confirm it parses with zero errors and warnings before rendering. - Headless Screenshot Rendering: Use the patched projectM-Test-UI binary with --preset, --screenshot, and --frames flags to capture deterministic BMP output after a fixed number of frames. - Screenshot Comparison: Compare rendered output against original WMP screenshots using SSIM, MSE, and histogram correlation metrics, including batch directory comparison. - Use Case: After writing a new lava.milk preset, validate its syntax, render a 60-frame screenshot, compare it against the original Trilogy III capture, and iterate on warp and decay parameters until SSIM exceeds 0.4. ## Quick Start Validate and render my preset at visualization/presets/TrilogyIII/lava.milk, then compare the screenshot against the original WMP capture and report the SSIM score.

Frequently Asked Questions about test-projectm-preset

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate a ProjectM .milk preset for syntax errors?

Run validate_milk.py with the preset path using the project Python virtualenv. A result of 0 errors and 0 warnings means the preset parses correctly and is ready for rendering tests.

How to render a ProjectM preset screenshot from the command line?

Run projectM-Test-UI with --preset pointing to the .milk file, --screenshot for the output BMP path, and --frames 60 so the animation settles before capture. The window opens briefly and closes automatically.

What metrics compare a rendered preset against an original screenshot?

The compare_screenshots.py tool reports SSIM for structural similarity, MSE for pixel error, and histogram correlation for color distribution. An SSIM above 0.4 typically indicates a good visual approximation.

Why does my ProjectM preset render as a black screen?

Common causes include a missing MILKDROP_PRESET_VERSION=201 header, incorrect PSVERSION values, fDecay set to 0.0, or too few frames before capture. Spectrum-based presets also need live audio input to produce visible output.

Can I test ProjectM presets interactively with live audio?

Yes, launch projectM-Test-UI without the --screenshot flag and it captures system default audio input. Use number keys to switch presets, F12 for screenshots, F for fullscreen, and Q or Esc to quit.