Games / Project story

Paint Pop

Throw a marble. Leave a mark.

Play the prototypeInteractive browser prototype
Paint Pop public preview with four colorful marbles on the starting board.
Screenshot from the existing public project.

A board that records play

Paint Pop is a canvas physics toy built around patterned marbles and colorful splatters. Drag a marble and release it to throw it across the board. It rolls, collides, and leaves paint behind. The board becomes a record of the interactions rather than returning to a clean image after each throw.

The controls sit close to the toy. Add another marble, change how long motion continues, or tap a dark rail to add and remove a spike. These adjustments change what happens inside the same small space. The board can become busy through repeated throws without asking the player to choose a new level.

Paint attached to a moving object

One implementation detail connects the surface appearance to the movement: markings and transferred paint are stored in coordinates local to each marble. As the ball rotates, its marks rotate with it. Paint is part of the moving object, rather than a flat pattern sliding over the screen.

The source tracks orientation, collisions, particles, and squash separately. Together they provide several visible responses to a throw: a marble changes position, its surface turns, its shape reacts, and paint remains on the board. The resulting image grows from the simulation rather than from a brush stroke drawn directly under the pointer.

Resetting only what you need

Wipe paint clears the splatters while preserving the marbles. Reset restores the starting board. Keeping those actions separate makes it possible to continue with an existing arrangement on a fresh canvas, or start the whole interaction again. Motion is another independent adjustment, changing how long balls keep moving without replacing the board.

Later additions in the project include music, golden teddy treasures, and rocket strikes with impact-zone cleanup. They add events to the underlying throwing-and-painting loop. The prototype runs in the browser without a server API or database. Open it to explore how a few repeated actions build up a picture, and how changing the arrangement changes the marks that follow.