Show HN: Turning a Gaussian Splat into a videogame

Browser shooter wows and riles: stunning splats, awkward characters, and an ethics flare-up

TLDR: A dev turned photo-real “blob” scans into a playable browser shooter with collisions, pathfinding, and NPCs. Commenters split between praise for performance, gripes about mismatched characters and static lighting, hype for future upgrades, and a sharp ethics worry about scanning real places—big tech leap, big questions.

Hacker News lit up after a dev strapped physics, lighting probes, a navmesh, and eight chatty NPCs onto a photoreal “Gaussian splat” scan and turned it into a browser FPS. Fans swooned over the vibes—one M4 Max user said it runs smoothly—and several pitched a hybrid future: let splats handle messy stuff like grass and clutter while traditional 3D models do the rest. The dev even shared the whole project and a tool that streams the world in pieces so phones don’t melt, plus a one‑command trick to turn fuzzy points into invisible walls and floors so players and bullets don’t clip through. Gorgeous abandoned building, cinematic mood, zero art direction required—just drop in and play.

Then the knives came out. Aesthetics purists hated that cartoony characters clash against the photoreal backdrop. Performance futurists begged for DLSS 5 (AI upscaling) to make it fly. Skeptics shrugged: no dynamic lighting means it “looks like 2006.” And an ethics alarm rang when someone recalled Germany’s “killer games” debate, worrying how ultra‑real scans of real places could be used. The thread became classic HN: equal parts wow, why, and whoa. The meme of the day: “splats for grass,” with folks joking about bushes wiggling like gelatin while bullets ping off voxel walls.

Key Points

  • A browser-playable FPS was built on a Gaussian Splat scene using PlayCanvas, adding physics, lighting probes, a Recast navmesh, and NPCs.
  • Splat assets were sourced from SuperSplat and converted using PlayCanvas’s splat-transform tool.
  • Streamed LOD (SOG chunks + manifest) enables on-demand loading based on camera and device capability, reducing stalls and pop-in.
  • A collision mesh was generated via splat-transform’s -K flag, producing a watertight .collision.glb for PlayCanvas physics.
  • The article begins to cover baking a lightness grid from the splat to light conventional 3D models, but the excerpt stops mid-explanation.

Hottest takes

“clash with the photorealistic splat environment” — swiftcoder
“look like a high quality game from 2006.” — halflife
“not a long stretch from there to having a realistic map of a school” — ulfen
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.