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 book however will need further development before it becomes truly useful.
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)