Skip to content

A browser-based ray tracer with support for rendering implicit mathematical functions, written in Dart.

License

Notifications You must be signed in to change notification settings

fkleon/trace-buddy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trace-buddy

A browser-based ray tracer aimed at rendering implicit mathematical functions, written in the Dart programming language. It runs natively in Dartium, a browser including the Dart VM, but the source code can be compiled to JavaScript for general compatibility with all modern browsers.

The algorithm used by trace-buddy to find ray intersections with implicit function is based on interval arithmetic1. The approach narrows down the possible intersection candidates until more efficient root finding algorithms can be applied. It has been described by several authors, including Hart2 and Knoll et al.3.

Distributed under the MIT License, see LICENSE file.

Usage

Have a look at the Wiki pages for example screenshots and usage information. For now you can also find a live demo of trace-buddy here (best viewed in Chrome, which includes a native HTML5 color picker).

Developers

Have a look at the DartDoc of trace-buddy for a general overview of its internal architecture.

The project is structured in two parts:

You can find more details about each part in their README files.


[1] Bohlender, Gerd, and Ulrich Kulisch. 2010. "Definition of the Arithmetic Operations and Comparison Relations for an Interval Arithmetic Standard." Reliable Computing 15 (1): 36–42.
[2] Hart, John C. 1993. "Ray Tracing Implicit Surfaces." SIGGRAPH ’93 Course Notes: Design, Visualization and Animation of Implicit Surfaces.
[3] Knoll, Aaron, Younis Hijazi, Andrew Kensler, Mathias Schott, Charles Hansen, and Hans Hagen. 2009. "Fast Ray Tracing of Arbitrary Implicit Surfaces with Interval and Affine Arithmetic." Computer Graphics Forum 28 (1): 26–40.

About

A browser-based ray tracer with support for rendering implicit mathematical functions, written in Dart.

Resources

License

Stars

Watchers

Forks

Packages

No packages published