Skip to main content

SORT

v1.0

Simple Open-source Ray Tracer designed for education and rendering algorithm experimentation with a visual editor

Path TracingRay Tracing
C++
GPL-3.0-only
Active
CPU
Stars
850
Release DateJan 2024
Contributors3
Forks120
At a Glance
Technique
Path Tracing, Ray Tracing
Language
C++
License
GPL-3.0-only
Platforms
Linux
macOS
Windows
GPU Support
No
CPU Support
Yes
Scene Formats
Sort Xml
Output Formats
PNG, BMP, JPEG, EXR, HDR
First Release
Jan 2016
Latest Release
Jan 2024
Best For
Intermediate-to-advanced graphics students studying modern rendering algorithms, developers wanting a readable reference for BDPT and Disney BRDF implementation, and engineers prototyping techniques before implementing them in production systems

Development Activity

Commit activity data is not available for this renderer.

850
Stars
3
Contributors
View on GitHub

Overview

Best for

Intermediate-to-advanced graphics students studying modern rendering algorithms, developers wanting a readable reference for BDPT and Disney BRDF implementation, and engineers prototyping techniques before implementing them in production systems

Not ideal for

Production rendering, GPU-accelerated workflows, commercial projects requiring a permissive license, or beginners who need extensive tutorials and community support

Strengths

  • Well-commented and cleanly structured C++ codebase explicitly written for readability, making it an excellent study resource for intermediate-to-advanced graphics students learning modern rendering algorithms
  • Includes a dedicated visual scene and material editor (SORT Editor), which is rare for educational renderers and makes experimentation much more accessible than text-only scene formats
  • Multiple integrator implementations — path tracing, bidirectional path tracing, light tracing, instant radiosity — in a single codebase allow direct comparison of different algorithms on the same scenes
  • Disney BRDF material model implementation provides modern physically based materials, bridging the gap between toy renderers and production systems
  • Actively maintained by a working graphics engineer who brings professional industry experience to an educational codebase with periodic algorithm additions

Limitations

  • GPL-3.0 license restricts use in proprietary or commercial projects — the copyleft requirement may discourage integration into company-internal tools or commercial products
  • CPU-only rendering with no GPU acceleration path limits practical use for scenes of any significant complexity
  • Very small community beyond the author — no forum, no Discord, and very few external contributors, meaning users cannot easily get help beyond reading source code and blog posts
  • Not designed for production use — lacks the robustness, error handling, and edge-case coverage that production renderers require for reliable daily use
  • Scene ecosystem is minimal — few pre-made scenes exist outside the bundled examples, and the SORT Editor has a limited feature set compared to full DCC tools

Background

SORT (Simple Open-source Ray Tracer) is a physically based renderer created and maintained by Jiayin Cao, a professional graphics engineer who has worked at major technology and game companies. Designed primarily as a personal learning project and educational showcase, SORT is used by its author to demonstrate, experiment with, and compare implementations of modern rendering algorithms — bridging the gap between toy educational renderers and production-grade systems.

Despite its educational orientation, SORT features a surprisingly complete rendering pipeline. It implements multiple integrators — unidirectional path tracing, bidirectional path tracing, light tracing, instant radiosity, ambient occlusion, and Whitted-style ray tracing — all within a single well-structured codebase that enables direct comparison of different algorithms on the same scenes. The renderer supports Disney BRDF materials, subsurface scattering, depth of field, HDRI environment lighting, and geometric instancing. It uses Intel Embree for ray-scene intersection acceleration and supports multi-threaded rendering. Notably for an educational project, SORT includes a dedicated visual scene and material editor (SORT Editor), a separate GUI application for authoring scenes and node-based materials.

SORT continues to receive periodic updates as its author experiments with new rendering techniques. The codebase is well-commented and explicitly structured for readability rather than maximum performance, making it an excellent study resource for intermediate-to-advanced graphics students who have outgrown minimal examples like smallpt but find production renderers like PBRT overwhelming in scope. The accompanying blog posts by Jiayin Cao provide detailed explanations of the algorithms implemented.

Quick Start

Visit the repository for installation instructions for SORT.

View Repository

Community & Resources

Tutorials & Resources

Performance Benchmarks

No benchmark data available for SORT yet.

Benchmarks will be added as more renderers are tested across our standard scene suite.

Learn about our methodology