engine
Native TypeScript game engine — compiles to Metal, DirectX 12, Vulkan, and OpenGL
File Explorer
Download Latest Version (.zip)- SKILL.md
- release.yml
- test.yml
- FUNDING.yml
- pull_request_template.md
- 001-tsr-half-res.md
- 002-compute-gtao.md
- 003-stochastic-ssr.md
- 004-cached-shadow-maps.md
- 005-depth-prepass.md
- 006-shadow-pass-culling.md
- 007-prep-wgpu-upgrade.md
- 007a-lumen-screen-probes-sw.md
- 007b-lumen-screen-probes-hw.md
- 008-visibility-buffer.md
- 009-gpu-driven-rendering.md
- 010-async-compute.md
- 011-cross-platform-ffi.md
- 012-remaining-bind-group-caches.md
- 013-lumen-surface-cache.md
- 014-lumen-mesh-sdfs.md
- 016-lumen-importance-sampling.md
- 017-lumen-cleanup-and-protocol-gaps.md
- lumen-roadmap.md
- README.md
- ticket-001-after.png
- ticket-001-before.png
- ticket-002-after.png
- ticket-002-before.png
- ticket-002-temporal-after.png
- ticket-002-temporal-before.png
- ticket-003-after.png
- ticket-003-before.png
- ticket-004-after.png
- ticket-004-before.png
- ticket-006-after.png
- ticket-006-before.png
- ticket-007-prep-after.png
- ticket-007-prep-before.png
- ticket-007a-after.png
- ticket-007a-before.png
- ticket-007b-after.png
- ticket-007b-before.png
- ticket-013-after.png
- ticket-013-before.png
- ticket-013-v2-after.png
- ticket-013-v2-before.png
- ticket-013-v3-after.png
- ticket-013-v3-before.png
- ticket-014-v1-after.png
- ticket-014-v1-before.png
- ticket-014-v10-after.png
- ticket-014-v10-before.png
- ticket-014-v11-after.png
- ticket-014-v11-before.png
- ticket-014-v12-after.png
- ticket-014-v12-before.png
- ticket-014-v13-after.png
- ticket-014-v13-before.png
- ticket-014-v14-after.png
- ticket-014-v14-before.png
- ticket-014-v15-after.png
- ticket-014-v15-before.png
- ticket-014-v2-after.png
- ticket-014-v2-before.png
- ticket-014-v3-after.png
- ticket-014-v3-before.png
- ticket-014-v4-after.png
- ticket-014-v4-before.png
- ticket-014-v5-after.png
- ticket-014-v5-before.png
- ticket-014-v6-after.png
- ticket-014-v6-before.png
- ticket-014-v7-after.png
- ticket-014-v7-before.png
- ticket-014-v8-after.png
- ticket-014-v8-before.png
- ticket-014-v9-after.png
- ticket-014-v9-before.png
- ticket-016-v1-after.png
- ticket-016-v1-before.png
- ticket-016-v2-after.png
- ticket-016-v2-before.png
- ticket-016-v3-after.png
- ticket-016-v3-before.png
- ticket-016-v4-after.png
- ticket-016-v4-before.png
- PT-1-progressive-megakernel.md
- PT-2-real-hit-shading.md
- PT-3b-svgf-denoiser.md
- PT-5-integration-and-restir.md
- PT-6-7-8-skinned-tlas-motion-oracle.md
- pt-roadmap.md
- 0001-material-render-graph.md
- 0002-atmospheric-sky.md
- crash-triage-windows.md
- design-api.md
- ios-target.md
- migration-0.5.md
- physics.md
- skeletal-animation.md
- tickets.md
- watchos-target.md
- web-target.md
- world-format.md
- main.ts
- .gitignore
- bloomFull.png
- build-windows.sh
- package.json
- README.md
- main.ts
- package.json
- main.ts
- package.json
- main.ts
- package.json
- main.ts
- package.json
- main.ts
- package.json
- outdoor.hdr
- main.ts
- package.json
- main.ts
- package.json
- README.md
- screenshot.png
- bun.lock
- main.ts
- package-lock.json
- package.json
- DamagedHelmet.glb
- outdoor.hdr
- studio.hdr
- helmet.json
- main.ts
- package.json
- interactive.ts
- main.ts
- r3f-bridge.ts
- room.ts
- shadows.ts
- main.ts
- package.json
- outdoor.hdr
- Sponza.glb
- main
- main.ts
- package.json
- Buggy.glb
- DamagedHelmet.glb
- Fox.glb
- main.ts
- package.json
- main.ts
- package.json
- main.ts
- package.json
- test3d
- test3d_fixed
- test3d_new
- main.ts
- package.json
- main.ts
- package.json
- README.md
- lib.rs
- Cargo.lock
- Cargo.toml
- lib.rs
- Cargo.lock
- Cargo.toml
- lib.rs
- Cargo.lock
- Cargo.toml
- lib.rs
- Cargo.lock
- Cargo.toml
- default_font.ttf
- clouds.wgsl
- fog.wgsl
- foliage_wind.wgsl
- imposter.wgsl
- pbr.wgsl
- shadows.wgsl
- sky.wgsl
- tonemap.wgsl
- test_minimal.wgsl
- impulse_field.wgsl
- material_abi.wgsl
- decode.rs
- mod.rs
- render.rs
- spsc.rs
- stream.rs
- assets.rs
- audio_ffi.rs
- draw.rs
- game_loop.rs
- input.rs
- mod.rs
- models.rs
- ragdoll_ffi.rs
- scene.rs
- vfx.rs
- visual.rs
- ao.rs
- core.rs
- env.rs
- gi.rs
- mod.rs
- post.rs
- pt.rs
- ssgi.rs
- atmosphere_lut.rs
- brdf_lut.rs
- draw2d.rs
- formats.rs
- froxel.rs
- gi_bake.rs
- graph.rs
- hiz.rs
- hot_reload.rs
- impulse_field.rs
- lighting.rs
- material_instancing.rs
- material_pipeline.rs
- material_system.rs
- material_system_tests.rs
- material_system_wasm.rs
- mod.rs
- model_draw.rs
- occlusion.rs
- planar_pass.rs
- planar_reflection.rs
- post_pass.rs
- postfx_chain.rs
- pt_pass.rs
- scene_pass.rs
- shader_include.rs
- shader_library.rs
- shadow_pass.rs
- ssgi_pass.rs
- ssr_pass.rs
- texture_store.rs
- transient.rs
- types.rs
- util.rs
- anim_mixer.rs
- attach.rs
- custom_shaders.rs
- decals.rs
- drs.rs
- engine.rs
- ffi.rs
- frame_callbacks.rs
- geometry.rs
- handles.rs
- input.rs
- jolt_sys.rs
- lib.rs
- models.rs
- models_gltf.rs
- particles.rs
- physics_jolt.rs
- picking.rs
- postfx.rs
- profiler.rs
- ragdoll.rs
- scene.rs
- sdf_cache.rs
- shadows.rs
- staging.rs
- string_header.rs
- text_renderer.rs
- textures.rs
- quadrants.png
- quadrants_bc7.dds
- lit_primitives_3d.png
- lit_primitives_taa.png
- lod_selection.png
- many_point_lights.png
- many_point_lights_clustered_scene.png
- pt_progressive.png
- pt_realtime_motion.png
- shapes_2d.png
- golden_render.rs
- render_targets.rs
- build.rs
- Cargo.lock
- Cargo.toml
- bloom_jolt.h
- bloom_jolt.cpp
- CMakeLists.txt
- JoltPhysics
- ci.yml
- metal.svg
- main.rs
- main.rs
- main.rs
- main.rs
- main.rs
- README.md
- screenshot.png
- shaders.metal
- shaders.metallib
- compute-argument-buffer.metal
- compute-argument-buffer.rs
- embedded-lib.rs
- main.rs
- shaders.metal
- shaders.metallib
- main.rs
- main.rs
- .gitignore
- main.rs
- README.md
- screenshot.png
- main.rs
- main.rs
- shaders.metal
- shaders.metallib
- main.rs
- shaders.metal
- shaders.metallib
- camera.rs
- geometry.rs
- main.rs
- README.md
- renderer.rs
- scene.rs
- screenshot.png
- shaders.metal
- shaders.metallib
- main.rs
- main.rs
- test_dylib.metal
- test_shader.metal
- main.rs
- README.md
- screenshot.png
- shaders.metal
- shaders.metallib
- compute.rs
- mod.rs
- render.rs
- acceleration_structure.rs
- acceleration_structure_pass.rs
- argument.rs
- blitpass.rs
- buffer.rs
- capturedescriptor.rs
- capturemanager.rs
- commandbuffer.rs
- commandqueue.rs
- computepass.rs
- constants.rs
- counters.rs
- depthstencil.rs
- device.rs
- drawable.rs
- encoder.rs
- heap.rs
- indirect_encoder.rs
- lib.rs
- library.rs
- mps.rs
- renderpass.rs
- resource.rs
- sampler.rs
- sync.rs
- texture.rs
- types.rs
- vertexdescriptor.rs
- .cargo-ok
- .cargo_vcs_info.json
- .gitignore
- bors.toml
- Cargo.toml
- Cargo.toml.orig
- LICENSE-APACHE
- LICENSE-MIT
- Makefile
- README.md
- audio_backend.rs
- lib.rs
- Cargo.lock
- Cargo.toml
- audio_backend.rs
- lib.rs
- Cargo.lock
- Cargo.toml
- bloom_postfx.metal
- audio.rs
- BloomWatchApp.swift
- BloomWatchAudio.swift
- draw_list.rs
- ffi_stubs.rs
- ffi_stubs_manual.rs
- lib.rs
- models.rs
- postfx.rs
- scene.rs
- textures.rs
- Cargo.lock
- Cargo.toml
- gen_stubs.js
- README.md
- input_ffi.rs
- lib.rs
- material_ffi.rs
- parity_ffi.rs
- physics_ffi.rs
- ragdoll_ffi.rs
- render_settings.rs
- bloom_glue.js
- build.sh
- Cargo.lock
- Cargo.toml
- index.html
- jolt_bridge.js
- splice_game.py
- lib.rs
- Cargo.lock
- Cargo.toml
- package.json
- README.md
- ci-check.sh
- export_mixamo_glb.py
- index.ts
- colors.ts
- index.ts
- keys.ts
- types.ts
- index.ts
- index.ts
- index.ts
- index.ts
- index.ts
- index.ts
- index.ts
- index.ts
- index.ts
- index.ts
- loader.ts
- prefab.ts
- render.ts
- saver.ts
- serialize.ts
- terrain.ts
- types.ts
- validate.ts
- version.ts
- index.ts
- Cargo.lock
- Cargo.toml
- main.rs
- main.rs
- Cargo.lock
- Cargo.toml
- check_tangents.rs
- main.rs
- tracer.rs
- Cargo.lock
- Cargo.toml
- render.py
- render.sh
- Cargo.toml
- main.rs
- gltf_load.rs
- main.rs
- octahedral.rs
- render.rs
- Cargo.lock
- Cargo.toml
- build-materials-from-json.ts
- check-file-lines.js
- detect-corruption.sh
- fetch-dxc.ps1
- file-lines-baseline.json
- README.md
- taa-repro.sh
- validate-ffi.js
- validate.sh
- .gitignore
- .gitmodules
- .npmignore
- bloom-renderer-spec-v2.md
- CLAUDE.md
- LICENSE
- package.json
- README.md
# Installation Guide
git clone https://github.com/Bloom-Engine/engine
Downloads the entire project code from GitHub to your computer.
cd engine
Moves into the project folder you just downloaded.
2. CMake
Medium Recommendedcd native/third_party/bloom_jolt
This project's files live in a subfolder, so move into it first.
mkdir build && cd build
Creates a folder to hold the build output and moves into it.
cmake ..
Analyzes the source code and generates build configuration files (must be run inside the build folder).
make
Compiles the code based on the generated build configuration to produce an executable.
3. Node.js
Easynpm install @bloomengine/engine
Downloads and installs the libraries listed in package.json.
pnpm add @bloomengine/engine
Type this command into your terminal and run it.
yarn add @bloomengine/engine
Type this command into your terminal and run it.
Pulled directly from this repo's README.
4. Rust
Medium- Git Needed to download the project code from GitHub.
- Rust (rustup) Installing via rustup also installs cargo.
cd native/android
This project's files live in a subfolder, so move into it first.
cargo build --release
Compiles the Rust project.
cargo run
Builds and then immediately runs the program.
5. Make
Medium- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
cd native/tvos/metal-patched
This project's files live in a subfolder, so move into it first.
make
Compiles the code based on the generated build configuration to produce an executable.
