← All work VR tool

InnoSpace

A VR interior design tool. You pick furniture from a floating menu, drop miniatures onto a floorplan on the table, and the full-size versions appear in the room at the matching spot. Group project; I was development lead and technical artist, and these are the systems I built.

Role
Development lead, technical artist
Engine
Unreal Engine 5 (Blueprints)
Platform
VR
Team
Group project
Year
2024

Most furniture assets came from the Unreal Engine Marketplace or free Sketchfab models. The systems and materials below are mine.

Breakdown

4 problems, 4 answers.

Problem 01

Spawn miniature furniture from a UI menu with a system that scales to any number of assets.

Approach

In the widget blueprint, each furniture button fires a custom event that spawns the actor at a marked location relative to the player.

The furniture static meshes sit in an array. The button that was clicked gives the index, which selects the mesh. Adding a new piece of furniture means adding one entry, not one blueprint.

Furniture spawn widget: button index selects the static meshClick to enlarge
Problem 02

Keep each miniature accurately linked to its full-scale twin in the real room.

Approach

When a miniature is grabbed, a full-scale version spawns. When it is dropped onto the floorplan, its position is normalized against the floorplan bounds.

That normalized position drives the full-scale asset, so wherever the miniature lands on the table, the real-space asset lands at the same relative spot in the room.

Location link: normalizing the miniature position onto the roomClick to enlarge
Problem 03

Let players hang wall-mounted assets, like paintings, and keep them linked to the floorplan too.

Approach

On tick, a line trace by channel fires from behind the asset. Where it hits a wall, both the full-scale and miniature assets are placed at the hit location, and the miniature is normalized as before.

Tick is enabled on grab and disabled on drop, so the trace only runs while the player is actually moving something.

Wall-mounted assets: line trace placement with tick gated by grab stateClick to enlarge
Problem 04

Make a frosted glass material for the UI planes that float in front of the user.

Approach

Because it is a UI surface, the material is not affected by scene lighting. A Fresnel node drives a white emissive for the edge shine.

A spiral blur on the opacity gives the soft, diffused look of frosted glass without a separate blur pass.

Frosted glass material: Fresnel edge and spiral-blurred opacityClick to enlarge
Contact

Let's build something you can stand inside.

Available for XR development and technical art work. Email is the fastest way to reach me.