Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 2.88 KB

README.md

File metadata and controls

48 lines (39 loc) · 2.88 KB

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.