---
title: CUDA Light Studio: pictures into a million points of light, in raw CUDA
url: https://www.consultingai.dev/work/cuda-light-studio/
original: https://www.consultingai.dev/work/cuda-light-studio/
---


# CUDA Light Studio: pictures into a million points of light, in raw CUDA

Environments built to order · by [Shreenivas Sangoram](/) · updated 28 Oct 2026

Short answer

CUDA Light Studio turns pictures into up to a million points of light and renders films from a score file in one deterministic pass. It is raw CUDA called through ctypes, with no PyTorch at render time, and it runs on a 4 GB laptop GPU. The light at the top of my data page comes from its tracer. What I sell is GPU and CUDA environments built in this style, where correctness and speed are both graded.

[](/data/)

The light at the top of [my data page](/data/) comes from this studio's tracer: each note of a score becomes thousands of points, and the page lights them as the music plays.

## How it works

- **The tracer** samples a picture into up to a million points on the GPU, using a mask of what to keep and a depth map from Depth Anything V2. The sampling is priority-ordered, so any prefix of the points is an even sample of the whole picture.
- **The renderer** splats the points with a moving camera and light, and writes frames straight to video.
- **A score file** (TOML) describes the whole film: shots, transitions, text and timing. One command renders it in one pass.
- **Checks** compare renders frame by frame against reference outputs before any refactor is committed.

## Engineering notes

- **Bit-identical frames.** Splats are summed in 64-bit fixed point, so the same score renders the same bytes every time, whatever order the GPU threads finish in.
- **Where the time goes.** The splat kernel is about 95% of frame time, and its cost is points times splat area. Capping points alone saved nothing; capping them and keeping each point small made renders about three times faster.
- **Thermal limits are real limits.** Two million points pushed the laptop GPU to 99 °C, so the studio caps a shot at 600,000 points.

## Facts

Item | Detail
Language | CUDA C++ (four kernel files, about 1,200 lines), called from Python through ctypes
At render time | No PyTorch, no ML framework
Hardware | RTX 3050 Laptop GPU, 4 GB
History | 19 commits in the current repository (Oct 2026); earlier versions are archived
Availability | Private. Not for sale as a codebase

## What you can buy

GPU and CUDA environments, built to your spec:

- kernel tasks with reference outputs, where the grader checks bit-exact or tolerance-bounded results;
- performance tasks graded on speed as well as correctness, on real consumer hardware;
- rendering and image-pipeline tasks where the result can be compared frame by frame.

## FAQ

### Does it use PyTorch or another ML framework?

Not at render time. The kernels are raw CUDA compiled with nvcc and called from Python through ctypes. Depth maps come from Depth Anything V2 in an offline preparation step.

### Why does determinism matter?

Because it makes the output testable. If the same score always renders the same bytes, a change that alters any frame is caught immediately, which is also what makes GPU work gradable as an environment.

### Can you build CUDA tasks for training or evaluating agents?

Yes. I build kernel and rendering tasks with reference outputs and graders for correctness and speed.

Want this, or something like it?

License it, or have me build an environment in the same style.

Email me →
