Galacean Engine is a web-first, mobile-first, open-source real-time interactive solution, built with a component-based architecture and written in Typescript. It includes features such as Rendering, Physics, Animation, Interaction, and XR. It also provides a comprehensive visual online editor with a complete workflow to help you create stunning 2D/3D interactive applications in the browser. It mainly consists of two parts:
Galacean Editor is an online web interactive creation platform. It helps you quickly create, edit, and export an interactive project. You can quickly upload assets, edit materials, adjust lighting, and create entities through the Galacean Editor to create complex scenes.
The overall process of creating an interactive project using the editor:
The editor allows better collaboration between technical and artistic team members. You can quickly start the development of your first project through business templates on the editor homepage.
Core functionalities are provided by Galacean Runtime, while advanced non-core and business logic customization features are provided by Galacean Toolkit. You can browse various engine examples online through the browser.
Includes the following sub-packages:
Package | Description | Related Documentation |
---|---|---|
@galacean/engine | Core architecture logic and core functionalities | API |
@galacean/engine-physics-lite | Lightweight physics engine | Doc |
@galacean/engine-physics-physx | Full-featured physics engine | Doc |
@galacean/engine-shaderlab | Galacean Shader compiler | Doc |
@galacean/engine-xr | XR logic package | Doc |
@galacean/engine-xr-webxr | WebXR backend | Doc |
You can install it via NPM:
npm install --save @galacean/engine
Then import and use it in your project:
import { WebGLEngine, Camera } from "@galacean/engine";
Non-core functionalities and business logic customization features are provided by the galacean-toolkit package (for a complete list of features, please check engine-toolkit):
Package | Description | API |
---|---|---|
@galacean/engine-toolkit-controls | Controllers | Doc |
@galacean/engine-toolkit-framebuffer-picker | Framebuffer Picker | Doc |
@galacean/engine-toolkit-stats | Engine Stats Panel | Doc |
...... |
In the same project, please ensure that the core engine package version is consistent and the major version of the toolkit is consistent. For example, with version 1.3.x of the engine, you need to use version 1.3.y of the toolkit.
There are also some secondary ecosystem packages, which are introduced and used in the same way as the engine toolkit:
Package | Description | API |
---|---|---|
@galacean/engine-spine | Spine Animation | Doc |
@galacean/engine-lottie | Lottie Animation | Doc |
For version dependencies of secondary ecosystem packages, please refer to the corresponding documentation.
Galacean Runtime runs in environments that support WebGL. So far, all major mobile and desktop browsers support this standard. You can check the compatibility of the runtime environment on CanIUse.
For some functional modules that require additional compatibility considerations, the current adaptation solutions are as follows:
Module | Compatibility Considerations | Specific Documentation |
---|---|---|
Mouse and Touch | PointerEvent | For compatibility, please refer to polyfill-pointer-event |
PhysX | WebAssembly | In environments that do not support WebAssembly, it will degrade to the JS version, with slightly lower performance and performance compared to the WebAssembly version |
Galacean is eager to collaborate with you to build an interactive engine. All development processes, including planning, milestones, and architecture design, are publicly available in GitHub's project management. You can participate in the construction of the engine by creating an issue and submitting a PR. If you have any questions or need help, you can join the DingTalk group or seek help in the discussion area.