Skip to content

Bluebird-Interactive/KinectSchoolScanner

Repository files navigation

Kinect Room Scanner

Turn a real room into a game-ready 3D memory, one scan at a time.

Kinect Room Scanner is a WPF-based room scanning prototype that uses a Kinect v1 sensor to preview live depth and RGB streams, capture a static room as a point cloud, and export the result as ASCII PLY for downstream cleanup and import into tools like Blender.

Hero screenshot placeholder

What this project is for

This project is built around a simple idea: scan a physical space, preserve its shape, and eventually turn that space into something a videogame can understand and reuse.

At the moment, the app focuses on the capture pipeline that makes that possible:

  • Detect a Kinect v1 sensor.
  • Render live depth and RGB previews.
  • Capture a single room frame into a colored point cloud.
  • Export that point cloud as PLY for Blender or other 3D tooling.

Live preview screenshot placeholder

The experience

From the user’s perspective, the flow is intentionally simple.

  1. Start the sensor.
  2. Watch the depth and RGB feeds come online.
  3. Point the sensor at the room you want to preserve.
  4. Capture a frame when the scene is stable.
  5. Export the capture to PLY.
  6. Import the file into Blender, clean it up, and continue toward meshing or game integration.

Capture workflow screenshot placeholder

How it works

The application is split into two layers:

  • KinectRoomScanner.App contains the WPF interface, sensor service, commands, and view model.
  • KinectRoomScanner.Core contains the data models and the PLY exporter.

The current build is centered on a single-frame scan. When a capture is requested, the app samples depth points from the Kinect stream, optionally projects RGB values onto those points, and stores the result in memory as a PointCloud. That point cloud can then be exported as a standard ASCII PLY file.

Point cloud screenshot placeholder

Capture pipeline

The capture flow is designed to be practical for static rooms and prototype environments:

  1. The Kinect sensor starts streaming depth and color data.
  2. The app keeps the most recent color frame in memory.
  3. When capture is requested, the depth frame is converted into 3D points.
  4. If color data is available, RGB values are projected onto the captured points.
  5. The finished point cloud is stored as the last capture in the current session.
  6. Export writes the cloud to disk as ASCII PLY.

Export screenshot placeholder

PLY export

The exporter writes:

  • ASCII PLY headers.
  • Vertex positions in meters.
  • Per-vertex RGB color when available.
  • A Blender-friendly coordinate transform so the imported result uses Z-up.

That makes the output easy to inspect, clean up, and repurpose in downstream 3D software.

Blender import screenshot placeholder

Why the output matters for games

The long-term goal is not just to save a scan. It is to preserve the shape and feel of a room in a format that can be turned into usable game assets.

That means the scan should eventually support things like:

  • Blockout or greybox reconstruction.
  • Collision-ready room geometry.
  • Environment reference for level artists.
  • Game-world memory that can be revisited, reused, or stylized later.

Game integration screenshot placeholder

Current state

This repository currently includes:

  • A WPF UI shell with live sensor status.
  • Depth and RGB preview panels.
  • One-shot point-cloud capture.
  • ASCII PLY export.
  • A Blender import workflow for verifying exported scans.

Known limitations in the current prototype:

  • The scan is a single-frame capture, not a full multi-pass reconstruction.
  • The live Kinect branch depends on Kinect SDK v1.8 being available on the machine.
  • The output is a point cloud, not a watertight mesh.

Status screenshot placeholder

Project structure

KinectRoomScanner.App/   WPF app, sensor service, view models, and UI
KinectRoomScanner.Core/  Point-cloud models and ASCII PLY export
docs/                    Workflow notes and milestone planning

Requirements

  • Windows
  • .NET Framework 4.8
  • Kinect for Windows SDK v1.8 for live sensor access
  • A connected Kinect v1 sensor for live capture
  • Blender if you want to inspect or clean up exported PLY files

If the Kinect SDK assemblies are not available at build time, the app falls back to a stub sensor service so the solution can still compile in a limited mode.

Build and run

  1. Open KinectRoomScanner.sln in Visual Studio.
  2. Restore and build the solution.
  3. Connect the Kinect v1 sensor.
  4. Run KinectRoomScanner.App.
  5. Press Start to begin streaming.
  6. Press Capture Frame when the room view is stable.
  7. Press Export PLY to save the capture.

Build and run screenshot placeholder

Blender workflow

After export, the scan can be imported into Blender with File > Import > Stanford (.ply).

The exported vertices are already converted to Blender-friendly Z-up coordinates and use meters as the unit scale. The result is still a point cloud, so it is best treated as a starting point for cleanup, analysis, or future meshing.

See the more detailed notes in docs/blender-workflow.md.

Blender cleanup screenshot placeholder

Roadmap

The current codebase lays the foundation for a fuller room reconstruction pipeline. The natural next steps are:

  • Multi-frame capture.
  • Frame alignment and registration.
  • Noise reduction and filtering.
  • Meshing.
  • Game-engine export or direct runtime import.

Roadmap screenshot placeholder

Development notes

Milestone planning and workflow details live in:

If you are documenting progress visually, add screenshots in docs/screenshots/ and replace the placeholders above as the project matures.

About

Kinect v1 room-scanning prototype with live depth/RGB preview, one-shot point-cloud capture, and ASCII PLY export for Blender cleanup and game-asset workflows.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages