#DHSeaDev — Chrome MV3 — Physics Arcade
Prism Cascade
Prism Cascade is a Chrome extension that opens a 30-second physics arcade in its own tab. You throw light-orbs at crystal prisms, the shards fall into the water below, and every splash sends up bubbles carrying points. The bubbles only score if they reach the counting beam at the top, and your own orbs are what pop them on the way. One hundred levels, no account, and not a single network request.
GET IT ON CHROME → PLAY IN YOUR BROWSER
Version 1.1.0 is live on the Chrome Web Store — free, with no account and no tracking. The full privacy policy is in the Privacy section below. Questions: dhseadev@gmail.com
The loop, in three beats
Every round is the same thirty seconds and the same three beats. What changes is the arrangement of crystals and how much you have upgraded.
Shatter
Aim with the mouse, click to throw. Throws are unlimited. Crystals gain hit points as levels climb, so late-game prisms need repeated impacts or a bigger orb.
Splash
Broken crystals rain debris into the pool. The harder the debris lands, the more point-bubbles the splash throws up, to a ceiling of fourteen bubbles per splash.
Float
Bubbles rise toward the counting beam. Reaching it banks their points and extends your combo. Anything that hits them first does not.
The interesting part is that you are your own hazard
Nothing in the game attacks you. The only thing that destroys points is the thing you are also using to create them: the orbs you throw and the debris you knock loose both pop bubbles in flight, and a popped bubble takes its points with it permanently.
That turns an arcade game about volume into a game about timing. Throwing constantly maximises splashes and shreds the bubbles already climbing. Waiting for a clean column banks everything but wastes seconds off a thirty-second clock. The end-of-round tally prints Banked and Popped away as separate lines specifically so the cost of over-throwing is visible rather than felt.
Two things soften it if you would rather not think about it. The waterfall down the right edge is a mirror, so a bank shot can reach a crystal without sending an orb up through your own bubble column. And in the Flow branch of the ability tree, Pearl Shell gives every bubble extra hit points and Calm Waters makes debris far less likely to pop one, which converts the whole tension into a difficulty setting you buy.
One hundred levels on one curve
Level layouts are generated, not authored, from a seeded generator keyed to the level number. That means level 63 is the same level 63 for everyone and on every device, with no level data to ship. Six layout families rotate through: towers, arc, rings, stairs, diamond and cavern.
The target curve is linear growth with mild compounding on top, so early levels move quickly and the last stretch genuinely asks for a maxed tree. Three stars is 2.2 times the one-star target.
| Level | Target for one star | Target for three stars | Crystals | Hit points each |
|---|---|---|---|---|
| 1 | 1,000 | 2,200 | 4 | 1 |
| 25 | 12,110 | 26,640 | 15 | 4 |
| 50 | 43,310 | 95,280 | 18 | 8 |
| 100 | 302,800 | 666,160 | 18 | 13 |
Crystal count caps at eighteen, so past the midpoint the pressure comes from hit points rather than from more targets. A level is never lost, only unfinished: missing the target costs a star and a retry, and the points you banked still convert to currency.
Stardrops, the tree, and the endowments
Thirty-five percent of every round score is banked as Stardrops, the spendable currency, whether or not you cleared the level. Stardrops buy ranks in a twelve-node ability tree across three branches, and each rank of a node costs double the last one.
- Shatter — orb damage, extra orbs per volley, heavier impacts, and a chance for a break to chain into neighbouring crystals.
- Flow — more bubbles per splash, faster rise, tougher bubbles, and calmer debris.
- Fortune — bubble value, extra round time, golden bubbles worth five times normal, and a steeper combo multiplier.
There are fifty-two ranks in total and buying every one of them costs 709,800 Stardrops. A fully maxed tree throws four orbs at six damage each, doubles the bubbles per splash, raises their value by three quarters, makes roughly a third of them golden, and adds five seconds to the clock.
Endowments are a separate track that cannot be bought. Five of them surface at levels 5, 15, 30, 50 and 75, and you may carry exactly one at a time: a value bonus, an extra point of orb damage, a bigger splash, a Stardrop rate lifted from thirty-five to forty-three percent, or three extra seconds. The one-at-a-time rule is the point. It is the only decision in the game you cannot solve by grinding.
Questions
Does Prism Cascade need an account or an internet connection?
Neither. The whole game ships inside the extension as one page, one canvas and two scripts. It makes no network requests of any kind, declares no host permissions, and has no server, no sign-in and no account. It works identically on a plane.
How long is a round, and can I lose progress?
Every round is thirty seconds, and the clock does not start until your first throw, so you can line up an opening shot for as long as you like. You cannot lose progress: missing the target means no star and a retry, and the points you banked during the round still convert to Stardrops.
Why did some of my points disappear?
They were never banked. Points only count once a bubble reaches the counting beam at the top of the screen, and bubbles are popped in flight by your own light-orbs and by falling crystal debris. A popped bubble takes its points with it. The end-of-round tally lists Banked and Popped away separately so you can see exactly how much your last volley cost you.
Is the leaderboard online?
No. It is a local top ten held in your own browser, so there is nothing to sign in to and nothing of yours on a server. Scores travel as a short share code instead: a string carrying a name, score and level with a checksum, which you can paste anywhere and anyone can paste into their own board. Alter a character and the checksum rejects it.
Privacy
The short version: Prism Cascade asks for one permission, contacts nothing, and stores your save in your own browser. There is no data collection to describe because there is no data collection.
| What | Answer |
|---|---|
| Data collected | None. Prism Cascade collects, transmits and receives no data whatsoever. |
| Accounts or sign-in | None. There is no account system, no login, no email field and no password. |
| Network requests | None. The packaged extension contains no fetch, no XMLHttpRequest, no WebSocket and no external URL of any kind. It declares no host permissions, so it could not contact a server even if it tried. |
| Analytics or telemetry | None. No events, no page views, no crash reporting, no third-party scripts, no advertising identifiers. |
| Permissions requested | Exactly one: storage. Nothing else is declared in the manifest. |
| Where your save lives | chrome.storage.local in this browser only. It holds your level, Stardrops, ability ranks, equipped endowment, local leaderboard, chosen name and sound setting. Nothing syncs to a Google account. |
| Browsing history and page content | Never read. Prism Cascade has no content scripts and runs on no website. It opens its own page in a tab and stays there. |
| Your name on the leaderboard | Optional, capped at twelve characters, stored only in your browser, and never transmitted. Leaving it blank shows ANON. |
| Share codes | Generated and read entirely on your own machine. A code carries only the name, score and level you chose to share, and posting one anywhere is your decision, not the game’s. |
| Remote code | None. No eval, no dynamically constructed functions, no remotely hosted scripts, no CDN libraries and no remote fonts. Sound is synthesised live with oscillators, so there are no audio files either. |
| Selling or sharing data | There is no data to sell, share or transfer, to anyone, for any purpose. |
| Deleting your data | Removing the extension deletes the save with it. You can also clear its storage from chrome://extensions at any time. |
| Children | The game is suitable for all ages and, because it collects nothing, holds no information about anyone regardless of age. |
The one permission, and why it exists
| Permission | Why |
|---|---|
storage | Saves your progress between sessions: current level, Stardrop balance, ability tree ranks, equipped endowment, stars earned per level, the local leaderboard and whether sound is muted. Without it every refresh would start you at level one. |
| Host permissions | None requested. Prism Cascade runs on no website and reads no page. |
| Opening its own tab | Needs no permission. The play button opens a page packaged inside the extension itself. |
What was deliberately not built: an online leaderboard, which is the one feature that would have required a server, an identifier for each player and a privacy policy with something in it. The share code exists so that scores can travel without any of that. It is a worse leaderboard and a much better trade.
Questions about any of this: dhseadev@gmail.com
Credits
Built by #DHSeaDev. Physics, rendering, sound and the level generator are all hand-written for this game with no engine and no third-party libraries. Prism Cascade is an original work and is not affiliated with or endorsed by any other product.
Built by #DHSeaDev — dhseadev@gmail.com
More from DHSeaDev
Prism Cascade is the arcade end of what I build. The other end is Dota Companion, a Dota 2 stats and matchup panel that people actually keep installed, and ServeBoard, which is a desktop analytics tool. All of it is on the projects page.