Skip to content

Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–6#13

Draft
ilikevibecoding wants to merge 19 commits into
mainfrom
cursor/bc-c0f11608-9533-4566-96fc-b9954415a56a-932d
Draft

Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–6#13
ilikevibecoding wants to merge 19 commits into
mainfrom
cursor/bc-c0f11608-9533-4566-96fc-b9954415a56a-932d

Conversation

@ilikevibecoding

@ilikevibecoding ilikevibecoding commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Limbo-parody physics puzzle-platformer — single-file Canvas + Matter.js demo

A transformative parody demo of Limbo's opening forest: monochrome silhouette aesthetic, fixed-timestep Matter.js physics, eight physics puzzle beats across a 13,700-unit forest, all in one index.html with zero build steps and procedural drawing only.

Iteration 6 — mid zoom, five new stages, light poles, reactive grass, drowning rework

  • Camera: base zoom dialed to ~1.6× (between the close-up and wide checkpoints, boy ≈ 1/9 screen height); the camera smoothly zooms out in objective areas (rope gaps, crate ledge, every new puzzle arena) so the whole puzzle reads at once
  • Five new puzzle stages after the original three beats:
    • S1 — stone wheel pit: roll a giant spoked wheel into a pit to bridge it
    • S2 — tilting bridge: an off-center pivot plank over a drownable pool that tips as he crosses
    • S3 — wheel step: roll a smaller wheel against a shelf and climb over its crown
    • S4 — rope-climb chasm: leap into a hanging rope, climb hand-over-hand (Up/Down), pump a swing, detach with Space
    • S5 — the cart: push a rolling two-wheel cart against the final wall and climb out via its deck
  • Limbo street lamps: leaning black poles with swinging lamp boxes, irregular flicker, additive bloom that punches through the vignette, and water drips that fall from the lamps and ring the pools; foreground colossi never park in front of a lamp
  • Reactive grass: dense meadow of sharp tapered blades on every walkable surface (no bald patches); blades bend away under his feet and spring back with an under-damped wobble; double-layer wind sway
  • Drowning rework: head under the surface → panic arm-flailing builds → held under >1s → he loses buoyancy and slowly sinks, fade-to-black, checkpoint respawn (8 silent checkpoints)
  • Forest depth: per-slot tree size classes (hulking near-trees vs slender far ones), curved sub-twigs on every branch, denser overlap
  • Rope physics: livelier pumping, multi-rope support, no re-catch after release; Space bound as the action key (detach/swing-launch off ropes, grab crates/cart)

Post-iteration bug fixes (user reports)

  • Abyss soft-lock: falling into the S4 chasm without the rope used to leave him standing in the dark forever — any fall below the world's abyss line now fades to black and respawns at the last checkpoint
  • Cart pin: the cart could be parked flush against the S4 platform ledge where nobody can stand behind it to push — an invisible curb (the boy walks straight through it) now keeps a pushing slot open, and a haul-assist force makes pulling the grabbed cart genuinely work (+371 px/4 s in the probe, grip held)
  • Respawning inside the wagon: if the cart/crate/wheel was parked exactly on a checkpoint, dying could respawn the boy inside it — the spawn now slides sideways along each checkpoint's solid span until it finds clear air; verified with a 24-scenario adversarial sweep (every checkpoint × every movable obstacle parked on it × abyss death)

Evidence

  • 49/49 automated checks at 60.0fps: full scripted playthrough of all 8 beats/stages, rope-climb probe, drowning flail/sink/respawn probe, abyss-fall respawn probe, wagon-on-checkpoint respawn probe, lamp-glow + drip pixel checks, grass-reaction probe, objective-zoom probe, fill-window viewport at 3 sizes, palette/brightness/grain/ripple analysis
  • Space binding verified end-to-end: swing-detach launch lands the gap (vx 4.5 at release), and Space-hold grabs/pulls the crate

S1 wheel pit
Tilting bridge with light pole
Lamp bloom over pool 1
Cart mount at the final wall
Finale fireflies

iter6-playthrough.mp4

Previous iterations

  • Iteration 5: full-window cinematic zoom, jointed character rig (knee/elbow limbs, sin-gait), head-under drowning, synthesized Web Audio drone
  • Iteration 4: darkness & density overhaul — dense film grain, aggressive vignette, DOF blur layers, colossal foreground trunks
  • Iteration 3: tree visual fidelity — organic trunks, gnarled branches, glow pockets, god rays
  • Iteration 2: swaying silhouette trees + extended level
  • Iteration 1: core demo — three physics beats, monochrome palette, self-evaluating Puppeteer loop

How to play

Open limbo-parody/index.html in a browser (needs internet once for the Matter.js CDN). ←/→ run · ↑ jump · ↑/↓ climb ropes · Space (or Z/X/Ctrl) hold to grab crates & the cart, press to swing off the rope. Don't keep his head under water too long, and mind the chasm.

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 4 commits June 12, 2026 02:28
…, single file)

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…ater, stronger rope pump/release, narrow gap

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
my-projects Ready Ready Preview, Comment Jun 12, 2026 11:25pm
my-projects-kf1f Ready Ready Preview, Comment Jun 12, 2026 11:25pm

…-script race (htmlpreview)

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…oons, level extended to 6400 with second pool; asymmetric player water drag

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
@cursor cursor Bot changed the title Iteration 1: Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1+2 Jun 12, 2026
…ches, foliage canopy, glow pockets, god rays, grass fringe; half-res atmospheric stack keeps 60fps

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…cohesive hero canopy

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
@cursor cursor Bot changed the title Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1+2 Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–3 Jun 12, 2026
… (-70% brightness), aggressive black vignette, per-layer DOF blur walls of fractal trees, colossal black foreground trunks, tiny hunched jagged boy, bumpy noise floor; 33/33 eval, 60fps

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
@cursor cursor Bot changed the title Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–3 Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–4 Jun 12, 2026
…ing reset, audio drone

- Viewport: no letterboxing, canvas fills the window; global 2.3x zoom (boy ~1/6 screen height); deadzone 90->22, lead clamp 80, tighter lerp
- Character: jointed Path2D rig over the invisible capsule - knee/elbow two-segment limbs, sin-gait around hip/shoulder, shirt + shorts polygons with ragged hems, softened hair tufts, fixed-offset glowing eyes
- Background: band spacing halved for overlapping trunk walls at the new zoom, ground band raised into frame, fog core brightened as the sole light source
- Mechanics: drowning (fully submerged >1000ms -> fade-to-black levelReset + fade-in respawn)
- Audio: synthesized Web Audio drone (detuned 48/48.65Hz pair + 24Hz sub through lowpass, slow LFO wobble), started on first input
- Eval: 36/36 - fill-window viewport checks, zoom fraction, drowning probe, audio state, world-space ripple tracking

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
@cursor cursor Bot changed the title Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–4 Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–5 Jun 12, 2026
… head-under drowning with flail+sink, rope climbing (up/down) with action release, multi-rope support, band tree size variety

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…eel step, rope-climb chasm, cart wall), light poles with drips, spoked wheels, cart physics, checkpoint respawns, second rope, livelier swing tuning

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…dance, branch sub-twigs, brighter pole glow

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
…l wall lowered to 740, S1 pit narrowed — all 47 validation checks green at 60fps

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
@cursor cursor Bot changed the title Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–5 Limbo-parody 2D physics puzzle-platformer (Canvas + Matter.js, single file) — Iterations 1–6 Jun 12, 2026
…tes and the cart

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
… checkpoint, invisible curb keeps the cart pushable at the left ledge (boy passes through), haul-assist force makes pulling the cart actually work; 48/48 checks

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
@vercel

vercel Bot commented Jun 13, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/christians-projects-76a7b9b1?upgradeToPro=build-rate-limit

…nt's solid span) to dodge parked carts/crates/wheels; debug setProgress hook; 49/49 checks incl. adversarial wagon-on-checkpoint scenario

Co-authored-by: ilikevibecoding <ilikevibecoding@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants