Send a marble down tuned bars and hear notes triggered at its actual calculated contact times. A ball advances under gravity and tests its path against horizontal bar tops. Each resolved contact records a timestamp and pitch; those same events trigger locally synthesized tones that are muxed into the film. Sound timing follows contact, rather than a separate preset beat list. Reuse supplied assets or quote new media through PopNow.

Uses PopNow for
Music & voice
Needs
Python 3 · FFmpeg

Generation is optional when you have suitable input material.

v1.0.0 · Updated Oct 25, 2026 · 225 KB · Use it for personal and client work; please don't resell or share the package.

What you get

  1. An editable 8-second 720p sample and local MP4 renderer, with locally synthesized contact tones.

  2. Contact events, visible responses, note synthesis and audio export share one timeline. Changing travel speed or gravity changes both the action and the resulting note timing.

  3. A six-frame contact sheet, render receipt and input self-check.

Good for

  • Original kinetic music toys and short audiovisual pieces
  • Exploring how physical timing changes a melody

Not for

  • The model tests one ball against bar tops, not arbitrary three-dimensional collisions. Different settings may skip bars or repeat contacts, and the result is not guaranteed to match a musical meter.

How it works

Includes a local renderer

  1. Choose the material

    No image or audio asset is needed for the example. The tuned bars and marble are procedural, and the contact tones are synthesized locally.

  2. Shape the motion

    Edit the documented project controls, then validate the exact settings. Travel speed from 90 to 145 changes horizontal motion.

  3. Render and review

    Export locally to MP4, inspect the contact sheet and watch the whole film. Play the film with sound and compare note onsets with visible contacts. Inspect the event list and listen for clipping or distracting repeated notes.

How the workflow runs

How Collision Music Machine works

A ball advances under gravity and tests its path against horizontal bar tops. Each resolved contact records a timestamp and pitch; those same events trigger locally synthesized tones that are muxed into the film. Sound timing follows contact, rather than a separate preset beat list.

What's inside the skill

What you can change

  • Travel speed from 90 to 145 changes horizontal motion.
  • Gravity from 350 to 700 and restitution from 0.6 to 0.95 change bar contacts.
  • Transpose from -12 to 12 shifts all contact pitches in semitones.

What to review before delivery

  • The local self-check compares three frame samples after a meaningful input change and rejects its documented invalid case.
  • Output protection rejects overlap with input files and preserves existing sidecars unless overwrite is explicit.
  • Play the film with sound and compare note onsets with visible contacts. Inspect the event list and listen for clipping or distracting repeated notes. This final visual review is manual.

See the package files

These are selected working files from this edition, with their actual role. The complete download also contains instructions and applicable license notices.

  • The task-specific motion mechanism and supported inputs.

    scripts/scene.py
  • Protected MP4 export, contact sheet and hash receipt.

    scripts/runtime.py
  • Editable settings used by the supplied sample.

    examples/project.json
  • Actual changed-frame, invalid-input and output-protection checks.

    scripts/selftest.py
  • Input ranges, material placement and honest limits.

    references/inputs.md

Why use this skill

Start with this package

Contact events, visible responses, note synthesis and audio export share one timeline. Changing travel speed or gravity changes both the action and the resulting note timing.

What PopNow adds

Use PopNow for the missing Music & voice in this workflow. Keep adequate material you already own, then bring new assets back into the editing and assembly steps described here.

Compare the options

A prompt, your own skill, or this workflow?

Start with a prompt

Your agent can create from a plain request. The brief, visual rules, asset choices, output format and review process still need to be established for that project.

Write your own skill

You choose and maintain the reusable instructions, defaults, file structure and checks. This is useful when your process needs different rules or integrations.

A workflow created for PopNow

This workflow was built for PopNow. Its source files, included dependencies and applicable notices are part of the package; the scope described below belongs to this edition.

Guide reviewed Oct 25, 2026

What will this cost?

The example's sound is synthesized locally from contacts, so it needs no paid audio generation. A separately requested soundtrack or replacement sound effects can be quoted through PopNow; preserve the existing contact tones unless the user asks to replace them.

Generation is optional when you have suitable input material. Free skill. New media is quoted before it runs.

The skill package

Free to install under your account's download allowance. The package license covers your own and client work; redistribution is excluded.

Existing assets and local work

Reusing suitable assets, editing files and running local assembly do not call a PopNow generation model. Your computer and any required runtime still do the work.

New AI images, clips or sound

Quoted for the actual model, inputs, count, duration and resolution. Extra alternatives, revisions or optional enhancement passes can add generation requests.

Your agent and hosting

Any subscription, hosted computer, deployment or other provider fee belongs to that service. Installing this skill does not include those services.

Check the cost of your version first

Your assistant can inspect the available models and quote the exact request first. You choose which optional passes to include and approve spending before generation.

Ask your assistant

  • Use the PopNow skill "Collision Music Machine" for my project. List the inputs you can reuse, quote only the missing media, show the quoted total and flag any unpriced steps. Separate optional enhancements, and wait for my approval before starting anything paid.

How PopNow billing works

Connections using a PopNow API key, including API-key MCP connections, spend from the separate API balance in USD. A ChatGPT or Claude connection authorized through OAuth spends website credits. These balances are separate; the quote shown by your connection is the approval basis.

Download allowances and current account conditions apply. A free package does not mean unlimited free generation.

How to use it

You say

  • Use the PopNow skill "Collision Music Machine" (collision-music-machine) for this: Render the supplied 8-second example. Make a second version with travel_speed set to 95. Show the changed motion and quote any missing media before generation.

Then try

  • Show how the changed setting affects the actual motion.

  • Keep my adequate source material and prepare an optional soundtrack quote.

What to have ready

  • No image or audio asset is needed for the example. The tuned bars and marble are procedural, and the contact tones are synthesized locally.
  • Python 3, Pillow, NumPy, FFmpeg and ffprobe
  • The project controls listed in the input contract

Similar skills

View all →

Ratings

No ratings yet. Installed it? Be the first to rate it.

Rate this skill

Questions

Are the notes timed to actual contacts?

Yes. The solver records the contact timestamps and uses the same list to synthesize the audio. Changing motion can change both the hit sequence and timing.

Does the sample require generated music?

No. It includes locally synthesized tones. A PopNow soundtrack is optional and needs a separate quote.

Will every parameter choice play all eight bars?

No. Speed, gravity and bounce affect the trajectory, so some choices can skip a bar or strike one again. Inspect and listen to the result.

What is already packaged in Collision Music Machine?

The task-specific motion mechanism and supported inputs. Protected MP4 export, contact sheet and hash receipt. Editable settings used by the supplied sample. Actual changed-frame, invalid-input and output-protection checks. Input ranges, material placement and honest limits.

Which parts of Collision Music Machine can add a charge?

The example's sound is synthesized locally from contacts, so it needs no paid audio generation. A separately requested soundtrack or replacement sound effects can be quoted through PopNow; preserve the existing contact tones unless the user asks to replace them. Connections using a PopNow API key, including API-key MCP connections, spend from the separate API balance in USD. A ChatGPT or Claude connection authorized through OAuth spends website credits. These balances are separate; the quote shown by your connection is the approval basis.

How does Collision Music Machine differ from writing a prompt or my own skill?

Contact events, visible responses, note synthesis and audio export share one timeline. Changing travel speed or gravity changes both the action and the resulting note timing.