Skip to main content

Projects

Adamas simplifies VR development by integrating essential features commonly required in VR applications directly into the runtime environment. This allows developers to focus on creating content and experiences rather than spending time rebuilding common VR infrastructure.

There are four core ideas behind Adamas VR projects.

Standard Typescript Workflow

Adamas projects follow a standard Node.js and TypeScript workflow. Developers can use familiar tooling, install npm packages, and publish reusable packages that can be shared across other Adamas projects. Adamas also provides a 3D scene editor layered on top of the TypeScript project, allowing visual scene and component editing alongside the standard development workflow.

Built-In VR Infrastructure

The Adamas SDK is designed so developers can focus on content and application logic rather than reimplementing common VR systems. Core capabilities are built into the Adamas runtime and maintained by the Adamas team. Projects built with the Adamas SDK and distributed through the platform automatically gain access to these features:

  • High-level runtime APIs for rendering and physics.
  • Avatar inverse kinematics and locomotion
  • Object interaction in 3D space
  • Support for multiple platforms and VR peripherals

Native Multiplayer Support

Adamas VR projects are natively multiplayer on the platform. VR projects built with the Adamas SDK are designed to support shared experiences in which multiple users can access the same project simultaneously within a common virtual space.

Although Adamas projects can be distributed outside the platform as standard TypeScript projects, projects published to the platform can be used by multiple users in the same virtual environment by default.

Multi-Application Virtual Spaces

The Adamas platform uses a modular project model centered on shared virtual spaces and reusable packages rather than monolithic applications that tightly bundle infrastructure and content. This allows multiple 3D applications to run within the same virtual space, so users can move between tools, experiences, and collaborative activities without leaving the session or closing previously opened applications. This model is especially useful in social VR and enterprise scenarios.

Project Setup

Adamas projects are standard TypeScript projects that run on Node.js, as shown in the project structure below. The Adamas SDK is available as a regular npm package: @adamasvr/sdk. Any TypeScript project can be configured as an Adamas project by installing the SDK and using its APIs to interface with the runtime.

For most developers, however, the easiest way to get started is through Project Studio on Adamas Hub. When a project is created using the Hub, a .adamas folder is added to the project root to store project metadata. This enables the project to work with the 3D visual editor in Adamas Hub while still supporting standard TypeScript development with the runtime API.

To learn more about setting up a project, see Project Setup.

ProjectRoot/
├── .adamas/ # Adamas metadata and generated project support files
│ ├── asset-record.json # Tracks project assets used by the editor
│ ├── asset-type.d.ts # Generated type definitions for asset usage
│ ├── generated.d.ts # Generated editor typings
│ └── project.json # Project metadata for the visual editor
├── dist/ # Build output directory
│ └── index.js # Bundled build artifact
├── node_modules/ # Installed npm dependencies
├── index.ts # Main project entry point
├── package-lock.json # Locked npm dependency versions
├── package.json # Project manifest and scripts
└── tsconfig.json # TypeScript compiler configuration

Project Distribution

Project distribution

Publish Projects in Project Studio.

Project list

Launch projects available on the Adamas platform.

Adamas projects that use the runtime API need to run on the Adamas platform. The simplest way to share a project with other users is to publish it to the Adamas platform as a public project. Project Studio allows developers to publish a project folder that contains at minimum an index.js entry file for the VR application.

Project Studio in Adamas Hub can compile TypeScript source code and bundle project assets into a single index.js file in the dist folder. After the build is uploaded to the platform, it can be launched by users in virtual spaces across Adamas.

For more information about project build and publishing workflows, see Project Distribution.

How is Adamas VR project different from a Unity VR project?

Adamas projects follow a different software architecture than Unity projects.

In Unity, each application is typically packaged as a standalone executable. The app and the Unity runtime are shipped together, then installed and launched by the operating system as a separate application.

In Adamas, the runtime is part of the Adamas platform instead of being bundled into each project. A project is published as application data and logic that the platform loads from the cloud, which is closer to how a web browser loads web apps.

This also changes how applications run on a device. Unity applications run as separate OS-level apps, while the Adamas platform runs once on the operating system and can host multiple Adamas apps concurrently inside the same shared runtime.

Comparison of Unity and Adamas project distributionComparison of Unity and Adamas project distribution