Skip to content
/ Eva Public

Realtime WebGPU raytracing that'll make your computer sweat

Notifications You must be signed in to change notification settings

DevinLeamy/Eva

Repository files navigation

Eva

Realtime raytracing that will make your computer sweat :)

Structure

  • /eva: Core renderer.
  • /eva-macros: Marcos for the core renderer.
  • /eva-py: Python3 scripting API.
  • /eva-py/python/eva_py: Pure Python3 wrapper on the Rust bindings.
  • /eva-py-macros: Macros for the Python3 scripting API.
  • /scripts: Python3 scripts.

Setup

Note: You will need to have Rust and Python3 installed on your system.

Create a virtual environment and install maturin.

cd eva-py
python3 -m venv .env
source .env/bin/activate
pip install maturin
deactivate

Usage

Scripts, which are python3 files, are put in /scripts.

To run a script ./scripts/custom-script.py, from the root folder, call

# No debug output.
./run.sh custom-script
# With debug output.
./debug.sh custom-script

Or, alternatively:

cd eva-py
source .env/bin/activate
maturin develop
cd ..
python3 ./scripts/custom-script.py

Dependencies

  • wgpu: Rust implementation of the WebGPU specification.
  • pyo3: Rust to Python3 bindings.
  • maturin: Python3 package builder for pyo3 generated bindings.
  • nalgebra: Rust linear algebra.
  • winit: Rust cross-platform windowing.
  • pollster: Rust crate for statically resolving Futures.
  • bytemuck: Rust crate for converting data types into bytes.
  • image: Rust crate for encoding and decoding images.
  • encase: Rust crate for byte-aligning structures for use in WebGPU shaders.
  • obj: Rust crate for loading .obj meshes.
  • half: Rust crate for handling 16-bit floating float numbers.

Resources

About

Realtime WebGPU raytracing that'll make your computer sweat

Resources

Stars

Watchers

Forks