Cabinet 01 · brick breaker · v1.0

BreakOut

Thirty-two bricks, one ball, three lives. Every brick you chip costs a hit — the top course takes three. Read the angle, cut the ball off the paddle edge, and don't let it settle into a vertical groove.

Playfield
400 × 600 px
Brick matrix
8 × 4 50×20
Ball
3–4 px / frame
Max score
320 pts

Controls key · mouse · touch

◀▶ AD SpaceR PM

Arrows / A · D slide the paddle — on screen, drag anywhere on the glass and it follows your finger. Space or tap launches. P pauses, R reboots, M mutes.

PWRCRT 400×600READY
drag the glass → paddle

Read the machine collision notes

  1. Paddle angle is yours. Centre returns flat; the tips throw the ball out to ±56°, and a moving paddle adds english.
  2. Bricks resolve on least penetration. The shallowest axis flips — top/bottom reverses dy, sides reverse dx.
  3. One contact per step. The ball is pushed clear of the brick it hit, so it can never be swallowed mid-wall.
  4. Speed is constant. Velocity is renormalised after every bounce — bounces never inflate the magnitude.

Physics fixed 120 Hz step

IntegrationrAF · acc
Sub-step≤ 1.6 px
TestAABB + depth
Sweep guardon
AudioWebAudio

Live telemetry

000Score / 320 max
Velocity0.00 , 0.00
Bricks left32
Lives● ● ●
Frame rate— fps
Vanilla JS · Canvas 2D · zero dependenciesBest score 0