<commit_before># twinkle

Twinkle (tentative name) is path tracer written C++. It will emphasize tracing implicit surfaces using physically realistic BRDFs in a distributed setting.

## Building

`make` should create the twinkle executable.

## Testing
`make test` will run an assorted, disorganized collection of tests.
<commit_msg>updates readme with current / planned features<commit_after><!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc/generate-toc again -->
**Table of Contents**

- [twinkle](#twinkle)
    - [Building](#building)
    - [Testing](#testing)
    - [Current Features](#current-features)

<!-- markdown-toc end -->


# twinkle

Twinkle (tentative name) is path tracer written C++. It will emphasize tracing implicit surfaces using physically realistic BRDFs in a distributed setting.

## Building
`make` should create the twinkle executable.

## Testing
`make test` will run an assorted, disorganized collection of tests.


## Current Features
Shapes
* Sphere
Lights
* Point
* Directional
* Shape-based
* Environmental (only one allowed)
Surface integrators
* Basic path tracing
* intersection testing
BRDFs
* Diffuse (Lambertian)
* Mirror (perfect specular)
Output Formats
* ASCII(Console)
* PPM


##  Planned Features
Shapes
* Plane
* Implicit Surface

Scripting system (probably lua)

Surface integrators
* Bidirectional path tracing
* ERPT

Full material system (incorp

BRDFs
* Oren-Nayer
* Fresnel reflection/transmission
* Cook-Torrance
* BRDF-blending

Textures
* From image
* perlin/simplex noise
* arbitrary function-based

Automatic Differentiation for implicit surface rendering
{'fraction_non_alphanumeric': 0.08511941212492345, 'fraction_numerical': 0.0, 'mean_word_length': 4.713286713286713, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4451017', 'n_tokens_mistral': 491, 'n_tokens_neox': 453, 'n_words': 177}