Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WaveLight

C++ Platform License

The interaction layer only — prism painting, the beam tool, the ImGui panel. Tessera owns the chunking, threading, and CPU/CUDA backends, and keeps its own copy of LightField for the engine's regression tests. Fetched here via CMake FetchContent at configure time.

Light as a scalar wave field on a fixed hex grid — three independent R/G/B fields, each solving the discrete wave equation d^2h/dt^2 = c^2*lap(h) on its own lattice. Different wave speed per color gives chromatic dispersion; a paintable "prism" region slows each color by a different amount and bends/splits the beam the way real glass does — no raytracing, no Snell's law, the wave equation does it. Built on Tessera.

See demo/light/README.md for the full writeup (where the idea came from, controls, rendering modes, built-in maps).

Build

cmake -S . -B out/build -G Ninja
cmake --build out/build --target Demo_light

CMake resolves and builds Tessera as part of this step (FetchContent) — no separate clone or install beyond what Tessera itself needs (Windows, MSVC, Ninja).

Controls

  • Pluck — LMB click, one-shot amplitude impulse
  • Brush — LMB hold injects energy, RMB hold damps it
  • Prism — LMB paints the slow-medium region, RMB erases it
  • Beam — LMB press, drag to aim, hold to fire a phased directional pulse
  • WASD/scroll/MMB — camera

About

Light as a scalar wave field on a hex grid, built on the Tessera engine

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages