Concept Overview

Human presence, translated into a living 3D forest.

The Core Idea

Data Forest is a real-time installation that turns building occupancy into a visual environment. Camera data feeds directly into tree growth, particle density, wind, weather, and atmosphere inside a Unity-rendered forest.

More people, more life. A quiet building makes a sparse, still scene. A busy one fills the canopy, adds wind, and triggers atmospheric events. The forest mirrors the building in real time.

Input to Environment

Growth stage 1: oak stump
01 Stump
Growth stage 2: leafless oak
02 Bare
Growth stage 3: branching oak with early leaves
03 Branching
Growth stage 4: fully leafed oak
04 Full
People count → biomass

Tree and Ground Growth

Person counts get smoothed into a biomass value for each micro-zone. That value drives the growth stage of the custom SpeedTree oak, grass coverage, and how fast things grow or decay. Each zone responds to its own camera independently.

Particle system and noise implementation in Unity
Noise → particles

Fireflies and Atmosphere

Noise values pipe into the particle system and drive the firefly-like elements, drifting motes, and ambient glow. Even when the building is quiet, the forest stays alive.

Data Forest scene showing vegetation and canopy motion
Movement → wind

Motion in the Canopy

Movement metrics connect to wind intensity. Trees and grass share the same wind direction and rate, so activity in the building translates into one coherent physical response across the scene.

Direct Interaction

There's also a more direct layer. A camera near the installation reads viewer poses and triggers live responses in the render, including rain and audio. The rain works with a reactive sky asset, so people standing in front of the piece can actually change the weather in the scene.

Pose detection test and camera setup

System Architecture

01

Camera Inputs

Webcams observe selected zones and stream frame data to the detection server.

02

Detection Server

Python, OpenCV, and YOLOv8 process frames and compute per-camera people counts.

03

Metrics API

FastAPI exposes per-camera values, aggregate counts, smoothed readings, and system health.

04

Unity Client

Unity polls the HTTP endpoint and converts current metrics into normalized control values.

05

Render Systems

Micro-zone controllers drive tree growth, grass, particles, wind, weather, sky state, camera behavior, and ambience.

Tech Stack

Computer Vision

Python · OpenCV · YOLOv8

Captures webcam frames, detects people, and outputs clean metrics without storing any identity data.

Server

FastAPI Metrics Endpoint

A lightweight HTTP server that exposes the current system state. Easy to inspect in a browser and simple for Unity to poll.

Render

Unity · C# Controllers

Unity owns the live 3D world. C# scripts take incoming metrics and drive biomass, particles, wind, rain, camera movement, and audio.

Assets

SpeedTree · Custom Scene

A custom SpeedTree oak, grass, rain systems, particle effects, reactive sky, and scene lighting. The goal was for it to feel like a terrarium you're looking into, not a data readout.