# playcanvas/engine

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/playcanvas-engine).**

16,051 stars · 1,920 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/playcanvas/engine
- Homepage: https://playcanvas.com
- awesome-repositories: https://awesome-repositories.com/repository/playcanvas-engine.md

## Description

This project is a WebGL 3D game engine and comprehensive suite of tools for rendering high-performance 3D graphics and interactive scenes in the browser using WebGL and WebGPU. It provides a dedicated WebXR framework for building augmented and virtual reality experiences that run directly in a web browser.

The engine includes a specialized Gaussian splatting renderer for displaying 3D point-cloud data to create photorealistic environmental captures. It utilizes a glTF asset pipeline to load and stream compressed 3D models and textures for efficient asset delivery.

The system covers real-time rigid body physics simulation, a spatial audio system for 3D positional sound effects, and unified input processing for keyboards, touchscreens, and gamepads. It also provides tools for application logic scripting and state-based animation systems.

## Tags

### Game Development

- [3D Game Engines](https://awesome-repositories.com/f/game-development/3d-game-engines.md) — Provides a high-performance 3D game engine for rendering interactive scenes in the browser using WebGL and WebGPU.
- [3D Physics Engines](https://awesome-repositories.com/f/game-development/3d-physics-engines.md) — Provides a simulation environment for calculating real-time rigid body physics and collisions between objects in 3D scenes.
- [Real-Time Physics Engines](https://awesome-repositories.com/f/game-development/real-time-physics-engines.md) — Implements real-time rigid body dynamics and collision detection to create realistic physical interactions within 3D environments.
- [Rigid Body Physics Engines](https://awesome-repositories.com/f/game-development/rigid-body-physics-engines.md) — Provides real-time rigid body physics simulation and collision detection for 3D environments. ([source](https://github.com/playcanvas/engine#readme))
- [Game Logic Scripting](https://awesome-repositories.com/f/game-development/game-logic-scripting.md) — Provides tools for application logic scripting to define custom interactive behaviors. ([source](https://github.com/playcanvas/engine#readme))

### Graphics & Multimedia

- [Browser-Based 3D Visualizations](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/scene-management-systems/3d-rendering-engines/browser-based-3d-visualizations.md) — A high-performance 3D game engine for rendering interactive scenes in a browser using WebGL and WebGPU.
- [Spatial Audio](https://awesome-repositories.com/f/graphics-multimedia/audio-music/spatial-audio.md) — Processes sound sources based on 3D coordinates relative to a listener to simulate realistic auditory environments.
- [3D Scene Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/gpu-accelerated-ui-rendering/3d-scene-renderers.md) — Processes 3D scenes and interactive elements using hardware-accelerated graphics pipelines for real-time visualization. ([source](https://github.com/playcanvas/engine#readme))
- [Hybrid WebGL-WebGPU Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/webgl-gpu-rendering/hybrid-webgl-webgpu-renderers.md) — Uses a hardware-accelerated graphics pipeline to translate 3D scene data into pixels across both WebGL and WebGPU.
- [WebXR Integrations](https://awesome-repositories.com/f/graphics-multimedia/immersive-interactive-systems/immersive-computing/webxr-integrations.md) — Interfaces with browser-based extended reality standards to map virtual content to augmented and virtual reality hardware.
- [Virtual Reality](https://awesome-repositories.com/f/graphics-multimedia/immersive-interactive-systems/virtual-reality.md) — Integrates extended reality standards to deliver immersive virtual and augmented reality interactions within a browser. ([source](https://github.com/playcanvas/engine/blob/dev/README.md))
- [Asynchronous Asset Streaming](https://awesome-repositories.com/f/graphics-multimedia/asset-loading-systems/asynchronous-asset-streaming.md) — Loads compressed 3D models and textures in the background to prevent main-thread blocking and reduce initial load times. ([source](https://github.com/playcanvas/engine#readme))
- [User Interaction](https://awesome-repositories.com/f/graphics-multimedia/immersive-interactive-systems/user-interaction.md) — Provides scripting for custom behaviors and processes user input from gamepads and touchscreens for interactive experiences.
- [Gaussian Splatting](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/animation-tools/mathematical-visualization-engines/3d-surface-visualizations/3d-reconstruction-pipelines/gaussian-splatting.md) — Includes a specialized renderer for loading and displaying 3D point-cloud data to create photorealistic environmental captures. ([source](https://github.com/playcanvas/engine#readme))
- [State-Based Animation Systems](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/animation-tools/programmatic-animation-apis/state-transition-animators/state-based-animation-systems.md) — Provides a state-based system for controlling complex character movements and scene property changes through interconnected animation states. ([source](https://github.com/playcanvas/engine/blob/dev/README-zh.md))

### Software Engineering & Architecture

- [Component-Based Scene Graphs](https://awesome-repositories.com/f/software-engineering-architecture/component-based-scene-graphs.md) — Implements a hierarchical scene graph for organizing 3D objects and their properties using reusable components.

### User Interface & Experience

- [Input Handling](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling.md) — Maps diverse user interactions from keyboards, touchscreens, and gamepads into a single interface for application logic.
- [User Input Processing](https://awesome-repositories.com/f/user-interface-experience/user-input-processing.md) — Implements a unified interface for capturing interactions from mice, keyboards, touchscreens, and gamepads. ([source](https://github.com/playcanvas/engine#readme))

### Web Development

- [Web-Based Asset Pipelines](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/asset-management-build-tools/asset-loading-resolution/3d-asset-loaders/web-based-asset-pipelines.md) — Ships a loading and streaming pipeline for compressed glTF 3D models and textures for efficient web delivery.
- [Binary Asset Loading](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/asset-management-build-tools/asset-loading-resolution/binary-asset-loading.md) — Implements asynchronous loading of compressed binary 3D models and textures to optimize memory and load times.

### Part of an Awesome List

- [Game Engines and Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/game-engines-and-frameworks.md) — 3D WebGL engine with online tools.
