The short version
A likeable little physics puzzle -- press and hold to compress a spring, release to launch through a level, with a speedrun timer for good measure -- confirmed to work correctly on both touch and keyboard, but every on-screen instruction and control label turns into the literal word "undefined" the moment you touch the screen, which is a worse version of a bug we already flagged in this engine's sibling Snake game.
Biggest strengths
- Confirmed genuinely working via direct testing on both platforms — three touch-and-hold-release presses correctly advanced from "Level 1: Boing Along" to "Level 2: The Gap," and a keyboard Space-hold produced a clean "Level complete! Time: 3.83s" screen
- A charming, simple core idea (compress a spring, launch through an obstacle course) executed with real physics feel, not just a fixed animation
- Multiple short levels with distinct names and a speedrun-style completion timer, giving it more structure than a single-screen toy
Biggest weaknesses
- Confirmed, reproducible: the moment you touch the screen, every on-screen instruction reads as literally broken text -- \"UNDEFINED to move, UNDEFINED to reset\" during play, and \"Enter for next level\"/\"z to try again\" both become \"undefined\" on the level-complete screen too. This is a worse, more pervasive version of the same bug already flagged in this engine's Snake entry (which only affected two menu button labels)
- Keyboard play is completely clean by contrast (we confirmed correctly-labelled text throughout on desktop), so this is specifically a touch-triggered regression, not a general engine flaw
- A simple, shallow physics toy at heart -- charming but with a low ceiling once you've seen the mechanic
Who it's for: Fans of small physics-timing puzzles who can look past a confusing but functional display bug.
Our recommendation: mixed
6.5 / 10
Smolpxl Spring is a small physics puzzle built on Andy Balaam's smolpxl teaching engine -- the same toolkit behind the previously-reviewed Smolpxl Snake (6.3, rejected). The idea here is simple and likeable: press and hold to compress a spring-legged little character, release to launch it through an obstacle course, with a stopwatch timing your run.
The mechanic works, confirmed on both platforms. We tested this directly rather than trusting the engine-level claim. On a real touch profile, three consecutive press-and-hold-release actions correctly advanced the game from "Level 1: Boing Along" to "Level 2: The Gap" -- genuine physics-driven progress, not a static screen. On desktop, a keyboard Space-hold produced a clean "Level complete! Time: 3.83s" completion screen. The core loop is real and it's satisfying in a small way.
The bug is worse than its sibling's. We need to be direct about this: the instant you touch the screen, every piece of on-screen instructional text breaks. During play, the HUD reads "UNDEFINED to move, UNDEFINED to reset." On the level-complete screen, "Enter for next level" and "z to try again" both become "undefined" too. We confirmed this is specifically a touch-triggered regression -- desktop keyboard play showed every label correctly throughout our entire test, including the completion screen. It's the same root cause flagged in Snake's review, but where that only broke two menu button labels, here it breaks every instruction a player sees during actual gameplay, which is a meaningfully worse first impression for anyone who taps rather than types.
Verdict. The physics idea is genuinely nice, the levels have real names and structure (Boing Along, The Gap, Squeeze, Rhythm Jump), and the speedrun timer gives it a little extra hook. But a game that displays broken instructional text throughout the entire touch experience -- even if every tap still functionally works -- doesn't clear the bar for an unqualified recommendation, and it's a step down from where its own engine sibling already landed.
Pros and cons
Pros
- Confirmed genuinely working via direct testing on both platforms — three touch-and-hold-release presses correctly advanced from "Level 1: Boing Along" to "Level 2: The Gap," and a keyboard Space-hold produced a clean "Level complete! Time: 3.83s" screen
- A charming, simple core idea (compress a spring, launch through an obstacle course) executed with real physics feel, not just a fixed animation
- Multiple short levels with distinct names and a speedrun-style completion timer, giving it more structure than a single-screen toy
- Part of a well-regarded, actively maintained teaching project (smolpxl, 19 stars on its core repo)
Cons
- Confirmed, reproducible: the moment you touch the screen, every on-screen instruction reads as literally broken text -- \"UNDEFINED to move, UNDEFINED to reset\" during play, and \"Enter for next level\"/\"z to try again\" both become \"undefined\" on the level-complete screen too. This is a worse, more pervasive version of the same bug already flagged in this engine's Snake entry (which only affected two menu button labels)
- Keyboard play is completely clean by contrast (we confirmed correctly-labelled text throughout on desktop), so this is specifically a touch-triggered regression, not a general engine flaw
- A simple, shallow physics toy at heart -- charming but with a low ceiling once you've seen the mechanic