MCPcopy Index your code
hub / github.com/DavidPeicho/albedo

github.com/DavidPeicho/albedo @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
327 symbols 504 edges 42 files 12 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🌘 Albedo 🌒

Rust framework dedicated to real-time visualization.

Disclaimer


This library is far from dead, but continued closed source for the time being. I will update as soon on possible on the future of this!

🚧 Albedo is a work-in-progress and might be unstable, use it at your own risks 🚧

Goals


  • Lightweight
  • Easy to use
  • Fast
  • Oriented for real-time visualization
  • As close as wgpu as possible for integration

Albedo isn't a game engine. It's designed to be a rendering framework made for real-time visualization. It's possible to use as the rendering module for a game, but that's not the use case why it was designed.

Features

GPU Raytracing

The albedo_rtx exposes GPU software Raytracing. You can use this crate to perform Ray-Triangle intersections.

  • CWBVH from tinybvh-rs
  • SVGF (Semi-working for now)

Lightmapper

The library comes with the albedo_lightmapper_native crate used to generate lightmaps for a mesh.

For now, the lightmapper only generate an ambient occlusion map, but it will soon generate RGB lightmaps.

Examples

GPU Picking

While picking is doable using a rasterized G-Buffer of IDs, this example shows how it can be done using the raytracing crate.

https://github.com/albedo-engine/albedo/assets/8783766/9a4b07e5-d6c3-4be1-9535-15cd1e3235e1

Extension points exported contracts — how you extend this code

Uniform (Interface)
(no doc) [11 implementers]
crates/albedo_rtx/src/uniforms.rs
Example (Interface)
(no doc) [1 implementers]
examples/example/mod.rs
ToPrimitive (Interface)
(no doc) [1 implementers]
crates/albedo_backend/src/mesh/primitive.rs
AsVertexFormat (Interface)
(no doc) [1 implementers]
crates/albedo_backend/src/mesh/mod.rs
ComputePipeline (Interface)
(no doc) [1 implementers]
crates/albedo_backend/src/gpu/pipeline.rs
ResourceBuilder (Interface)
(no doc) [1 implementers]
crates/albedo_backend/src/gpu/resource.rs
AsVertexBufferLayout (Interface)
(no doc) [1 implementers]
crates/albedo_backend/src/gpu/vertex_buffer.rs

Core symbols most depended-on inside this repo

len
called by 36
crates/albedo_backend/src/mesh/primitive.rs
as_entire_binding
called by 35
crates/albedo_backend/src/gpu/buffer.rs
get
called by 15
crates/albedo_lightmapper_native/src/lib.rs
set_pipeline
called by 14
crates/albedo_rtx/src/passes/a_trous.rs
size
called by 11
crates/albedo_backend/src/gpu/texture_atlas.rs
get_dispatch_size
called by 8
crates/albedo_rtx/src/lib.rs
compile_compute
called by 8
crates/albedo_backend/src/data/shader_preprocessor.rs
slice
called by 7
crates/albedo_backend/src/gpu/buffer.rs

Shape

Method 218
Class 76
Function 18
Interface 8
Enum 7

Languages

Rust99%
C++1%

Modules by API surface

crates/albedo_rtx/src/uniforms.rs38 symbols
crates/albedo_backend/src/mesh/primitive.rs38 symbols
crates/albedo_backend/src/gpu/buffer.rs31 symbols
crates/albedo_backend/src/gpu/texture_atlas.rs25 symbols
crates/albedo_backend/src/data/shader_preprocessor.rs18 symbols
crates/albedo_backend/src/gpu/queries.rs16 symbols
crates/albedo_math/src/aabb.rs15 symbols
crates/albedo_lightmapper_native/src/lib.rs15 symbols
crates/albedo_rtx/src/passes/shading.rs10 symbols
examples/example/mod.rs9 symbols
crates/albedo_rtx/src/blas.rs9 symbols
examples/gpu_picking/main.rs6 symbols

For agents

$ claude mcp add albedo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact