All projects

Puttscape: Mixed-Reality Mini-Golf

The Puttscape wordmark in white over a glowing blue hexagonal grid.

Mixed-reality mini-golf on Meta Quest 3 and Android XR from one codebase, with holes generated from the scanned room and a venue client that connects the game to our Spatial Venue server.

What it is

Puttscape is mixed-reality mini-golf: players putt a virtual ball across a real floor. The headset scans the room and a generator fits a hole to the floor it finds, so the same game works in rooms of any size and shape.

What we built

The game’s platform engineering: a move to AR Foundation so one Unity codebase builds for Meta Quest 3 and Android XR, the procedural generator that lays out a hole on the player’s scanned room, and hand tracking, putter physics, and theme packs shared across both platforms. For venue play we built the native client library, shipped as a Unity package, that connects the game to Spatial Venue, our venue server, and the operator tooling around the server: a live status page and a command-line control tool.

How it is used

A player scans the room, the course is laid out on the real floor, and hand tracking and putter physics do the rest. The venue client gives the game a session on Spatial Venue, which keeps the ball, scores, and course in one place for a floor that staff run from the status page and control tool.

Puttscape gameplay from the player’s view: a white ball on a green course with wooden rails, a stack of barrels, a character standing at the far end, and the putter in the foreground.
A hole in play: the course is laid out on the floor the headset scanned.
Diagram in three steps: the headset maps the floor and its edges, a generator lays out a hole that fits the scanned room, and players putt a virtual ball on the real floor. One codebase builds for Meta Quest 3 and Android XR, and a venue client connects the game to the Spatial Venue server.
How the game works. A diagram, not a gameplay capture.View full size

Evidence

What it shows

What changed

One Unity codebase builds for Meta Quest 3 and Android XR, lays a hole on the floor the headset scanned, and connects to the Spatial Venue server from a real headset.

  • Two headset platforms

    The AR Foundation port builds for Meta Quest 3 and Android XR from one codebase, with the game checked on both devices.

  • Room-scan course generation

    The procedural generator lays a hole on the scanned room, verified in single-player play on a Quest 3 and covered by editor tests.

  • Shared gameplay systems

    Hand tracking, putter physics, and theme packs are written once and run on both platforms.

  • Venue handshake

    A native client on a Quest 3 completed the session handshake with the Spatial Venue server.

Context

Puttscape is named where the work is described. Sessions with several headsets are described on the Spatial Venue study, where they were tested with simulated players.

Next step

Have a similar problem?

Describe it in a few sentences. You get a draft brief to review before anything is sent.

Get in touch

Farwhen

Behind the experience

The systems this project uses, grouped by the part of Farwhen they belong to.

Our technology

What it runs on

  • XR foundation

    The Unity AR Foundation base supports the game on Quest and Android XR.

  • Spatial Venue

    The venue client package connects the game to the Spatial Venue server.

  • DASP

    Automation reaches the venue server through its DASP control socket.

  • Venue devices

    Headset discovery and telemetry for the venue floor.

Built with

  • Unity
  • C#
  • AR Foundation
  • OpenXR
  • Meta Quest 3
  • Android XR
  • Procedural generation
  • Rust

Credit

Engineering by Dream Awake Labs on the Puttscape game and the Spatial Venue server.

Get in touch

Tell us what you have in mind.

Describe it in a few sentences. You get a draft brief to review before anything is sent.