/shade

Shade is a Shader Based WebGPU 3D Engine

Primary LanguageJavaScript

Shade Engine

Shade Engine Logo
Next-generation WebGPU rendering for the modern web

The Future of Web 3D is Here

Shade Engine is a high-performance WebGPU-powered 3D engine designed to push the boundaries of browser-based graphics. From immersive games to interactive visualizations, from virtual worlds to scientific simulations, Shade Engine delivers desktop-quality rendering with web accessibility.

Unleash the Power of Modern GPUs

Built from the ground up for WebGPU, Shade Engine harnesses the full potential of modern graphics hardware through compute shaders, advanced culling, and parallel processing. Render millions of particles, simulate complex physics, and create vast planetary landscapes - all running smoothly in a browser tab.

Beyond Traditional Boundaries

Unlike conventional web 3D libraries, Shade Engine doesn't compromise. Experience physically-based rendering, volumetric lighting, realistic atmospheric effects, and advanced post-processing that rivals native applications. Scale from mobile devices to high-end workstations with adaptive quality settings and optimized performance.

Developer-Focused Workflow

With a clean, intuitive API and comprehensive tooling, Shade Engine accelerates your development process. The component-based architecture, powerful asset pipeline, and extensive documentation help you create complex 3D experiences with less code and faster iteration times.

Key Features

  • Full WebGPU Utilization: Compute shaders, parallel processing, and advanced GPU capabilities
  • Physically-Based Rendering: Industry-standard materials, lighting, and visual effects
  • GPU-Accelerated Physics: Simulate thousands of dynamic objects with minimal CPU overhead
  • Procedural Systems: Dynamic generation of terrain, planets, particles, and animations
  • Adaptive Performance: Intelligent scaling across different devices and hardware capabilities
  • Comprehensive Toolset: Debug visualization, performance profiling, and asset optimization
  • Component Architecture: Clean, data-oriented design for better performance and maintainability

Documentation

Core Engine

Rendering

Physics and Simulation

Graphics Features

Animation

Advanced Features

Developer Tools

Getting Started

Directory Structure

c:\source\shade\
│
├── index.html                  # Main demo page
├── index.js                    # Entry point
├── README.md                   # Main documentation
├── LICENSE                     # License file
│
├── src/                        # Source code
│   ├── core/                   # Core engine
│   │   ├── Engine.js           # Main engine class
│   │   ├── Scene.js            # Scene management
│   │   ├── Entity.js           # Base entity
│   │   ├── Component.js        # Component base class
│   │   ├── System.js           # System base class
│   │   ├── Time.js             # Time and frame management
│   │   └── ecs/                # Entity Component System
│   │
│   ├── render/                 # Rendering system
│   │   ├── Renderer.js         # Main renderer
│   │   ├── RenderPipeline.js   # Pipeline management
│   │   ├── Camera.js           # Camera system
│   │   ├── materials/          # Material system
│   │   ├── lights/             # Lighting
│   │   ├── shadows/            # Shadow systems
│   │   ├── postfx/             # Post-processing
│   │   └── shaders/            # Shader management
│   │
│   ├── physics/                # Physics systems
│   │   ├── Physics.js          # Main physics interface
│   │   ├── RigidBody.js        # Rigid body implementation
│   │   ├── Collider.js         # Collision shapes
│   │   ├── collision/          # Collision detection
│   │   └── spatial/            # Spatial partitioning
│   │
│   ├── assets/                 # Asset management
│   │   ├── AssetManager.js     # Main asset manager
│   │   ├── loaders/            # Asset loaders
│   │   ├── optimizers/         # Asset optimization
│   │   └── cache/              # Asset caching
│   │
│   ├── animation/              # Animation systems
│   │   ├── Animator.js         # Animation controller
│   │   ├── Skeleton.js         # Skeleton implementation
│   │   ├── AnimationClip.js    # Animation data
│   │   ├── IK.js               # Inverse kinematics
│   │   └── procedural/         # Procedural animation
│   │
│   ├── ui/                     # UI framework
│   │   ├── UIManager.js        # UI system manager
│   │   ├── Canvas.js           # 2D canvas system
│   │   ├── components/         # UI components
│   │   └── layout/             # Layout systems
│   │
│   ├── input/                  # Input handling
│   │   ├── InputManager.js     # Input management
│   │   ├── ActionMap.js        # Input abstraction
│   │   ├── devices/            # Device implementations
│   │   └── gestures/           # Gesture recognition
│   │
│   ├── audio/                  # Audio system
│   │   ├── AudioManager.js     # Main audio interface
│   │   ├── AudioSource.js      # Sound emitter
│   │   ├── AudioListener.js    # Spatial listener
│   │   └── effects/            # Audio effects
│   │
│   ├── terrain/                # Terrain systems
│   │   ├── Terrain.js          # Terrain implementation
│   │   ├── TerrainGenerator.js # Procedural generation
│   │   └── planetary/          # Planetary rendering
│   │
│   ├── particles/              # Particle systems
│   │   ├── ParticleSystem.js   # Main particle system
│   │   ├── Emitter.js          # Particle emitter
│   │   └── effects/            # Predefined effects
│   │
│   ├── debug/                  # Debugging tools
│   │   ├── Debug.js            # Debug utilities
│   │   ├── Profiler.js         # Performance profiling
│   │   ├── Visualizer.js       # Debug visualization
│   │   └── console/            # Debug console
│   │
│   └── utils/                  # Utilities
│       ├── math/               # Math utilities
│       ├── data/               # Data structures
│       ├── webgpu/             # WebGPU helpers
│       └── workers/            # Worker management
│
├── shaders/                    # WGSL shader files
│   ├── core/                   # Core shaders
│   ├── compute/                # Compute shaders
│   ├── postfx/                 # Post-processing shaders
│   ├── particles/              # Particle shaders
│   └── terrain/                # Terrain shaders
│
├── examples/                   # Example scenes
│   ├── basic/                  # Basic examples
│   ├── advanced/               # Advanced examples
│   ├── games/                  # Game demos
│   └── showcase/               # Visual showcases
│
├── docs/                       # Documentation
│   ├── api/                    # API documentation
│   ├── guides/                 # Tutorials and guides
│   ├── resources/              # Resources and images
│   └── examples/               # Example documentation
│
├── tools/                      # Development tools
│   ├── asset-pipeline/         # Asset processing
│   ├── shader-compiler/        # Shader tools
│   └── profiling/              # Profiling tools
│
└── tests/                      # Test suite
    ├── unit/                   # Unit tests
    ├── integration/            # Integration tests
    └── performance/            # Performance benchmarks

License

Shade Engine is released under the MIT License. See LICENSE for details.

Community and Support