Keikan

An elegant (imo) rendering engine written in Rust.
Alternatives To Keikan
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Tinyrenderer16,118
3 months ago38otherC++
A brief computer graphics / rendering course
Filament15,8112415 hours ago93September 20, 202295apache-2.0C++
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Hazel9,578
15 hours ago110apache-2.0C++
Hazel Engine
Open3d8,902
3 days ago870otherC++
Open3D: A Modern Library for 3D Data Processing
Blender8,507
13 days ago5otherC
Official mirror of Blender
Fyrox6,15626a day ago25January 07, 202265mitRust
3D and 2D game engine written in Rust
Spritejs5,0716276 months ago430July 03, 202266mitJavaScript
A cross platform high-performance graphics system.
Tinyraytracer4,451
3 months ago15C++
A brief computer graphics / rendering course
Webglstudio.js4,064
3 years ago31mitJavaScript
A full open source 3D graphics editor in the browser, with scene editor, coding pad, graph editor, virtual file system, and many features more.
Ogre3,296
a day ago33June 21, 2022115mitC++
scene-oriented, flexible 3D engine (C++, Python, C#, Java)
Alternatives To Keikan
Select To Compare


Alternative Project Comparisons
Readme

Keikan ()

An elegant (imo) rendering engine written in Rust.

Keikan is a multithreaded photorealistic rendering engine that supports path-tracing, ray-marching, Photo Based Rendering (through a principled implementation), and more.

I've tried my hand a few toy path-tracers and ray-marchers in the past, and I wanted to write something more than just a toy. Having just stumbled upon Rust, I decided to try my hand at it by implementing a rendering engine from scratch.

This project was originally inspired by Ray Tracing in One Weekend, but after I knocked out the core engine, I've pulled from a number of different sources and my own experience to develop it further.

Results

Here's a recent render of a ray-marched Mandelbulb (a type of fractal):

A Mandelbulb fractal

Rendered in a little over 2 minutes on a potato.

There are some images bundles in this repository under the keikan/renders/ folder, ordered chronologically. Go check them out!

Design Goals

Keikan is able to render a large variety of objects, including fractals to near-infinite precision, due to its support of both path-tracing and ray-marching.

Ray-marching is rendering through the use of a signed distance field. I personally got interested in computer graphics through writing ray-marching renderer, so I decided that if I wrote another rendering engine, I'd have include ray-marching as a technique.

Getting Started

To render a small demo, clone this repository and run Keikan:

git clone https://github.com/slightknack/keikan.git
cd keikan
cargo run --release -- ~/Desktop/demo.png  # where to save the image

You should see some output right away. Keikan will spawn as many threads as detected CPU cores, so it should be pretty relatively fast (for non-GPU-based rendering code, haha).

I'd like to use GPU features, as I've made some ray marchers in GLSL, but it seems like Rust doesn't have standardized GPU support. If you know how to run Rust on the GPU, open an issue so we can discuss it further!

Why (the Name) Keikan?

It's Japanese for policeman.

Popular Rendering Projects
Popular 3d Graphics Projects
Popular Graphics Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Rust
3d Graphics
Gpu
Rendering
Tracing
Fractal
Rendering Engine