Skip to content

TylerJForstrom/Ripple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ripple — a wave-interference puzzle

A small logic game built on real wave interference. Drop coherent point-source emitters on the board; their circular waves superpose — reinforcing into bright antinodes and cancelling into dark nodes. Solve each level by placing sources so the ◎ bright targets land on antinodes and the ⊘ quiet targets land on nodes.

No frameworks, no build step — just index.html, styles.css, and game.js.

How it works

  • The field is a phasor sum: Σ a(r)·e^{i(k·r + φ)}. The real/imaginary parts (C, S) only change when an emitter moves, so each animated frame is just C·cos(ωt) + S·sin(ωt) — O(1) per pixel.
  • I = C² + S² is the time-averaged intensity (the interference pattern), used to score targets.
  • Levels are procedurally generated from a known random solution, so every puzzle is guaranteed solvable. The Hint button reveals the generating emitter positions.

Run it

Double-click index.html, or serve the folder:

python -m http.server 8092
# then open http://localhost:8092

Play

  • Drag an emitter onto the board, drag again to move it, tap one to remove it.
  • Light the bright targets and keep the quiet ones dark — at the same time.
  • New puzzle regenerates at the current difficulty; Next level steps it up.

Built by Tyler Forstrom.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors