Hermes3D
Hermes3D is an open source 3D engine built on Hermes Agents for creating games, simulations, and high-performance 3D applications.
What is it?
What it is
Hermes3D is a 3D virtual office for AI agents you run on your own infrastructure, providing a visualization and interaction layer for agent systems. It offers a live 3D office environment, a builder surface for editing layouts, and a gateway‑first architecture that keeps runtime state in the connected backend while the frontend stores UI preferences locally.
Why it exists
AI systems are hidden behind logs, dashboards, and terminal output. Hermes3D exists to make agent work visible in real time, enabling inspection, monitoring, and spatial interaction so AI systems become understandable through presence, motion, and shared workspace.
Who should use it
AI engineers, developers, and technical teams building or visualizing AI agent workflows
Who should avoid it
Non-technical users and those without Node.js or server setup experience
Stars over time
No change stars in the last 1 day
How it works
A quick walkthrough in plain English
How Hermes3D works
Step 1 of 3
You interact with it
Open Hermes3D, send a request, or connect it to your stack.
Features
Advantages
- Self-hosted infrastructure gives full data control
- Immersive 3D visualization makes agent activity tangible
- Dual 2D/3D rendering supports diverse hardware
- Backend-neutral gateway protocol allows flexible integrations
- Same-origin WebSocket proxy avoids CORS issues
- Comprehensive documentation and troubleshooting guides
- Active CI/CD with Docker publishing
- MIT license encourages open collaboration
- Supports Tailscale and SSH for secure remote setups
- Modular architecture separates frontend from runtime backends
Disadvantages
- Unofficial community project not affiliated with backend providers
- Gateway secrets loaded into browser memory at runtime
- Voice transcription not bundled (returns 501)
- Local Spotify auth lacks refresh-token handling
- Separate 3D and 2D office stacks increase maintenance
- Requires Node.js 20+ and modern browser support
- Limited to WebSocket-based gateway protocol
- Production deployments need careful allowlist configuration
- Multi-agent beta has known limitations
- No built-in installation of upstream runtimes
Installation
cloud
Configure gateway URL and token in Studio; use Tailscale (`tailscale serve --yes --bg --https 443 http://127.0.0.1:18789`) or SSH tunneling (`ssh -L 18789:127.0.0.1:18789 user@host`) to connect remote gateways.
native
git clone <your-public-repo-url> hermes3d; cd hermes3d; npm install; cp .env.example .env; npm run dev. For Hermes backend: add `npm run hermes-adapter`. For demo mode: add `npm run demo-gateway`.
FAQ
How do I set up Hermes3D to work with a running Hermes API server and the bundled gateway adapter?
First ensure the Hermes API server is running (default http://localhost:8642). Then start the Hermes WebSocket adapter with `npm run hermes-adapter` and the dev server with `npm run dev`. In the Studio UI, choose the Hermes backend, set the gateway URL (e.g., ws://localhost:18789) and token, and connect.
What steps are required to run the built‑in demo gateway for local exploration without a real agent framework?
Run `npm run demo-gateway` to start the mock gateway, then `npm run dev` to launch the Studio dev server. Open http://localhost:3000, choose the Demo backend in the connect screen, and use the gateway address ws://localhost:18789 with the provided demo token.
How can I connect Hermes3D to a remote gateway using Tailscale or SSH?
On the remote gateway host, expose the gateway port (e.g., run `tailscale serve --yes --bg --https 443 http://127.0.0.1:18789` or create an SSH tunnel `ssh -L 18789:127.0.0.1:18789 user@<host>`). In Studio, configure the gateway URL to the Tailscale address (wss://<host>.ts.net) or use the local tunnel (ws://localhost:18789). Ensure the token matches the one configured on the gateway.
Which environment variables control the gateway URL and token that Studio uses?
Use `NEXT_PUBLIC_GATEWAY_URL` for a build‑time default gateway URL (requires `npm run build`), or `HERMES3D_GATEWAY_URL` and `HERMES3D_GATEWAY_TOKEN` for runtime defaults that take effect after a Studio restart. `STUDIO_ACCESS_TOKEN` is needed when Studio binds to a public host, and `UPSTREAM_ALLOWLIST`/`CUSTOM_RUNTIME_ALLOWLIST` restrict allowed upstream hosts.
Why does the Connect screen fail even though the UI loads, and how can I fix it?
Connect failures are usually due to incorrect upstream URL or token in Studio settings, or using wss:// against a non‑TLS endpoint. Verify the gateway URL and token, ensure the gateway uses wss:// when TLS is required, and check the error messages (e.g., EPROTO, INVALID_REQUEST). Updating the gateway or using the demo gateway can also resolve version mismatches.
Featured in Videos
YouTube tutorials and walkthroughs for Hermes3D
Alternatives
Similar projects ranked by category, topics, and text overlap.