A 3D floorplan dashboard for Home Assistant. Load your own 3D model, map it to your smart home entities, and control everything from an interactive view in your browser.
- 3D floorplan -- load a custom
.glbmodel of your home and navigate it freely - Light control -- toggle, dim, and color-pick lights directly from the 3D scene (supports on/off, dimmable, RGB, RGBW, and IR remote types)
- Wall displays -- render live sensor data (temperature, humidity, energy, etc.) on surfaces inside the model
- Network tubes -- animated tubes that visualize real-time network throughput
- Sun and weather -- sun position tracks your real location; optional rain/snow particle effects
- Side panel -- configurable cards for scripts, indicators, and graphs
- Config editor -- define lights, displays, shadow walls, and tubes from a built-in UI
- Onboarding wizard -- guided setup for first-time users
- Backup / restore -- export and import your full configuration as a ZIP
- Demo mode -- explore the dashboard without a Home Assistant instance
- PWA -- installable as a progressive web app with offline support
- Dark and light themes
React, TypeScript, Babylon.js, Vite, Home Assistant WebSocket API.
Use the hosted version directly at https://kdcius.github.io/3Dash_webapp/.
No installation required. Your Home Assistant instance must be accessible over HTTPS for the WebSocket connection to work from the hosted page.
The easiest way to self-host. Runs on the same machine as your Home Assistant instance.
Or manually:
- In Home Assistant, go to Settings > Add-ons > Add-on Store.
- Open the overflow menu and select Repositories.
- Add
https://github.com/kdcius/3Dash_webapp. - Install 3Dash from the store and start it.
- Open
http://<your-ha-ip>:8099in your browser.
When running behind HTTPS, the add-on automatically uses
wss://for the WebSocket connection. If you use a self-signed certificate, your browser must trust it for the connection to work.
For advanced users who want to build and serve 3Dash themselves.
git clone https://github.com/kdcius/3Dash_webapp.git
cd 3Dash_webapp
npm ci
npm run buildServe the dist/ directory with any static file server (Nginx, Caddy, etc.). For development with hot reload, use npm run dev instead.
All configuration happens in the browser -- no config files to edit manually.
| What | Where |
|---|---|
| Home Assistant URL, port, and token | Onboarding wizard or Settings |
| Location (for sun tracking) | Onboarding wizard or Settings |
| Theme, rendering, camera | Settings modal |
| Lights, displays, shadow walls, tubes | Config editor |
Configuration is persisted in localStorage. The 3D model is stored in IndexedDB.
src/
babylon/ 3D scene, model loading, lights, displays, tubes, sun, weather
components/ React UI (HUD, modals, side panel, cards, forms, guided tour)
pages/ Dashboard, config editor, onboarding
services/ HA WebSocket client, config/settings persistence, storage
contexts/ React contexts (demo mode, camera, theme)
types/ TypeScript type definitions
utils/ Color conversion helpers
public/ Static assets (default 3D model, fonts, icons, PWA manifests)
3dash-addon/ Home Assistant add-on (Dockerfile, nginx config, run script)
This project is provided as-is. See the repository for license details.