<jupyter_start><jupyter_text>A quick demo of the new raytracing module in the standard library. It is based on the first half of the[Ray Tracing in One Weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html) book however will need further development before it becomes truly useful.<jupyter_code>import numpy as np
from arlunio.raytrace import (
    LambertianDiffuse,
    MaterialRenderer,
    SampledRenderer,
    Sphere
)
objects = [
    (Sphere(center=np.array([0, -100.5, -1]), radius=100), LambertianDiffuse()),
    (Sphere(center=np.array([0, 0, -1])), LambertianDiffuse(color='coral'))
]

kernel = MaterialRenderer(objects=objects, bounces=50)

renderer = SampledRenderer(kernel=kernel, samples=50)
image = renderer(width=1920, height=1080)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11446540880503145, 'fraction_numerical': 0.03018867924528302, 'mean_word_length': 5.921739130434783, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 1, '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}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '468126', 'license': 'MIT', 'n_tokens_mistral': 271, 'n_tokens_neox': 254, 'n_words': 65, 'path': 'blog/src/gallery/Raytracing Demo.ipynb', 'repo_name': 'swyddfa/stylo', 'size': '795'}