Luminance Section Profile
Build luminance profiles from selected cross-sections. Calculate beam falloff, peak luminance, and transition gradients from the active floating-point frame across physical distance in millimetres.
Ray Explorer connects CAD geometry, parametric optical design, native NVIDIA OptiX tracing, near-field luminance inspection, far-field photometry, road projection, and regulation engineering pre-checks in one project workflow.
In receiver-coupled workflows, changing the inspection plane or viewpoint can require an upstream sensor change and another simulation. Ray Explorer separates escaped-ray generation from downstream inspection so the same ray database can answer additional view and measurement questions.
Position, orientation, and resolution are part of the simulation setup.
Run the source simulation for the configured receiver.
Review the result produced for that receiver definition.
Modify the receiver and rerun when the upstream tool cannot reuse escaped rays.
Interactive GPU viewport with a measured 58 FPS reference case. Load multi-file ray sessions, rotate virtual sensors, extract cross-section luminance profiles, compute 2D FFT homogeneity ripple in cycles/mm, and process supported camera RAW files through selected calibration profiles.
A high-performance inspection workspace for optical ray databases, direct 2D luminance grids, and calibration-aware camera-derived maps—built for optical engineers.
On compatible Windows/NVIDIA systems, the optional Vulkan/CUDA presenter keeps supported near-field frames in GPU memory through tone mapping and presentation. OpenGL is the normal native fallback, with a software renderer available when native OpenGL cannot start.
Build luminance profiles from selected cross-sections. Calculate beam falloff, peak luminance, and transition gradients from the active floating-point frame across physical distance in millimetres.
Measure rectangular, circular, and polygonal regions. Calculate area averages, peak luminance, minima, standard deviation, and a geometry-dependent candela estimate from a selected viewport area.
Inspect colour using CIE 1931 tools and live viewport sampling. Sample chromaticity coordinates $(x, y)$, $(u', v')$, CCT in Kelvin, and inspect spectral ray distributions.
Ray Explorer adapts the resident preview to available GPU memory when necessary, while retaining a separate complete-file accumulation path.
Every retained ray is weighted by the exact source-to-preview ratio. This preserves aggregate flux weighting for the deterministic sample; it does not remove spatial sampling error from a reduced preview.
Ray Explorer evaluates the active luminance region in both the spatial and frequency domains, revealing not only how much variation exists, but also its scale and physical structure.
Converts pixel luminance $L(x,y)$ into fractional deviation $\delta(x,y) = \frac{L(x,y) - \bar{L}}{\bar{L}}$, ensuring metrics evaluate percentage ripple independently of absolute light output.
Multiplies the active ROI by a separable 2D Hann window, eliminating artificial high-frequency boundary discontinuities before applying the Fast Fourier Transform.
Applies a smooth order-2 band-pass filter from $0.05$ to $0.50\text{ cycles/mm}$ ($2\text{ mm}$ to $20\text{ mm}$ physical period), suppressing broad macro falloff and pixel sensor noise.
Maps the radial spectrum power peak directly into physical spacing in millimeters, allowing detected ripple to be compared with optical pillow pitch or LED array spacing.
Ray Explorer automatically renders a controlled angular sweep from the underlying ray data—without screen recording or manual frame capture. Every frame is freshly rendered and labelled with its viewing angles, display mode, and peak luminance. Scaling remains fixed throughout the sequence, preventing misleading brightness changes between frames.
Ray Explorer processes supported DSLR and mirrorless RAW captures (.CR2, .CR3, .DNG) through camera-specific calibration profiles to produce quantitative $\text{cd/m}^2$ luminance and CIE chromaticity maps for rapid engineering analysis.
Bypasses consumer picture styles, non-linear gamma curves, and lossy JPEG compression to read true linear sensor photoelectron counts.
Extracts shutter time ($s$), aperture ($f$-number), ISO gain, and focal length from header metadata to normalize radiometric exposure.
Applies flat-field radial falloff correction, known-target reference scaling, and spectral 3D LUT matrices to map camera RGB into calibrated CIE $XYZ$ estimates.
Detects sensor pixel saturation and blooming that could compromise peak luminance, exporting an auditable .npz package with full telemetry.
Target Calibration Prerequisite: To establish quantitative radiometric accuracy, consumer cameras must be calibrated against known reference targets (such as calibrated diffuse reflectance grey targets, uniform integrating spheres, or reference spot photometers) to account for individual sensor quantum efficiency, lens vignetting, and spectral response.
Explore the focused camera-luminance workflowRay Explorer projects ray directions onto a horizontal and vertical angular grid, then converts accumulated luminous flux into intensity in candela with solid-angle correction.
Bin directions, accumulate luminous flux, and apply solid-angle correction across the distribution:
Why Solid Angle Correction is Essential: Equal angular increments do not represent equal solid angles. Without correction, intensity becomes increasingly biased away from the optical axis.
Ray Explorer projects the far-field intensity distribution onto a configurable road model, translating angular candela data into road illuminance and driver-view luminance.
Road illuminance depends on both distance ($r$) and incidence angle ($\alpha$).
Engineering pre-check only—not type-approval evidence: Confirm the applicable regulation series, supplement, device class, traffic side, and installation conditions before homologation.
Ray Explorer applies selected bundled UNECE engineering interpretations—or user-authored target definitions—to the raw far-field intensity map, showing where configured limits are met and where design margin is limited.
Bundled definitions are selected engineering interpretations, not authoritative regulation text or type-approval evidence. Verify the applicable series, amendments, class, traffic side, installation conditions, and national adoption before homologation.
Ray Explorer’s Regulation Builder lets engineers combine geometric targets and derived acceptance rules in one reusable definition—without manually editing JSON.
mean(ref("Left"), ref("Right"))
Formulas can use arithmetic and the helpers ref, min, max, sum, mean, and abs, while arbitrary executable code is rejected.
Custom definitions represent internal or customer engineering criteria—not official regulations unless independently sourced, reviewed, and controlled.
Ray Explorer combines OCCT CAD topology, seven parametric optical feature types, defined optical materials, configurable light sources, and native NVIDIA OptiX tracing inside one project.
Ray Explorer supports two complementary design paths. Existing optical assemblies can be imported directly, while common optical components can be generated from editable engineering parameters.
A viewport colour helps identify a component. Its optical material determines how light is reflected, refracted, absorbed, and scattered during simulation.
Ray Explorer produces more than a rendered result. Each completed simulation generates a reusable escaped-ray database and a companion engineering report describing how that result was produced.
| Project File | Ray_Explorer_Lit_Logo_Benchmark.rayx |
|---|---|
| CAD Source | Ray_Explorer_Lit_Logo_Benchmark.rayx (19 bodies, 837k tris) |
| Output Ray File | Ray_Explorer_Lit_Logo_Benchmark.ray (2.28 GiB) |
| Runtime Package | .trace_runtime (Companion JSON metadata) |
| Max Bounces | 64 bounces |
| Path Flux Cutoff | 2.5e-08 (launch fraction) |
| Ignore Direct Rays | False |
| GPU Batch Size | 8,000,000 rays / chunk (automatic) |
| Escaped in Air (Valid) | 76,641,338 (3.832%) |
|---|---|
| Absorbed by Materials | 89,684,411 (4.484%) |
| Alive / Max Depth | 1,833,507,746 (91.675%) |
| Numerically Invalid | 6,384 (0.000319%) |
| Escaped in Medium | 160,121 (Inner_Lens: 160,103, Outer_Lens: 18) |
| Effective Input Flux | 112.50 lm |
| Exported Ray Flux | 1.8851 lm |
| Final Status Accounted | 2,000,000,000 (100.0%) |
| Source / Pattern | Qty | Type | Stored Rays | Launched Total | Sampling | Input Flux | Flux / Source | Spectrum |
|---|---|---|---|---|---|---|---|---|
rayfile_KW_SITRA1_SK_blue_5M.RAY |
5 | ray_file | 25,000,000 | 833,333,335 | resampled | 2.048 lm | 0.410 lm | Monochromatic (550 nm) |
rayfile_KW_SITRA1_SK_yellow_5M.RAY |
5 | ray_file | 25,000,000 | 833,333,333 | resampled | 95.453 lm | 19.091 lm | Monochromatic (550 nm) |
rayfile_KY_SITQA1_23_5M.RAY |
2 | ray_file | 10,000,000 | 333,333,332 | resampled | 15.000 lm | 7.500 lm | Monochromatic (550 nm) |
| # | Material Name | Volume Model | Definition / File | Surface Model | Boundary | Trans. | IOR ($n$) | Abbe ($V_d$) |
|---|---|---|---|---|---|---|---|---|
| 0 | Inner_Lens | Measured library | Volume_Makrolon_240x.json |
Optical polished | automatic_air | 1.0 | 1.5850 | 27.58 |
| 1 | Outer_Lens | Measured library | Volume_Plexiglas_8N.json |
Optical polished | automatic_air | 1.0 | 1.4932 | 57.00 |
| 2 | Housing_PCB | Opaque | Housing_PCB | Mirror | surface_only | 0.0 | 1.5000 | — |
| 3 | Absorber | Opaque | Absorber | Mirror | surface_only | 0.0 | 1.5000 | — |
Test_1_20260806_143503.json){
"format": "ray_explorer_simulation_log",
"version": 4,
"frontend": "Ray Explorer Standalone",
"timestamp": {
"local_iso": "2026-08-06T14:45:53+01:00",
"utc_iso": "2026-08-06T13:45:53Z"
},
"simulation_name": "Ray_Explorer_Lit_Logo_Benchmark",
"project_name": "Ray_Explorer_Lit_Logo_Benchmark",
"output_ray_file": "Ray_Explorer_Lit_Logo_Benchmark.ray",
"trace": {
"elapsed_s": 640.20389,
"max_bounces": 64,
"flux_cutoff": 2.5e-08,
"trace_rays": 2000000000,
"ignore_direct_rays": false,
"automatic_chunk_size_rays": 8000000
},
"sources": {
"count": 12,
"group_count": 3,
"native_ray_count": 60000000,
"traced_ray_count": 2000000000,
"input_flux_lm": 112.500002
},
"geometry": {
"body_count": 19,
"triangle_count": 837843
},
"result": {
"exported_ray_count": 76641338,
"exported_flux_lm": 1.885102,
"escaped_in_medium_count": 160121,
"absorbed_ray_count": 89684411,
"alive_ray_count": 1833507746,
"invalid_ray_count": 6384
},
"statistics": {
"million_rays_per_second": 3.124,
"exported_ray_percent": 3.832,
"flux_efficiency_percent": 1.676,
"output_file_size_bytes": 2452522844
}
}
The current beta targets 64-bit Windows. GPU features depend on compatible NVIDIA CUDA/OptiX components, while near-field presentation can fall back from the optional Vulkan/CUDA path to OpenGL and, when requested, a software renderer.
| Format | Category | Capabilities |
|---|---|---|
.ray |
Ray Database | Standard and spectral variants with wavelength and flux |
.ltrf / .dat |
LucidShape / Binary | LTRF ray records with automatic binary header sniffing |
.dis |
ASAP Format | Direction and spatial distribution coordinates |
.txt / .npz |
Luminance Grids | 2D floating-point grids; physical dimensions and XYZ are retained when present |
.ies |
Far-Field Photometry | IES ingest and export for angular intensity distributions |
.CR2 / .CR3 / .DNG |
Camera RAW | Metadata extraction, profile-based conversion, optional CIE XYZ LUT, and warnings |
STEP / IGES / BREP |
CAD Geometry | Exact body and face topology with trace mesh decoupling |
| Component | Specification | Notes |
|---|---|---|
| Ray Tracing Core | Built native OptiX bridge + compatible NVIDIA driver | OptiX owns BVH traversal and ray/triangle intersection |
| GPU Presentation | Optional Vulkan 1.1 path on Windows | CUDA-written shared frame memory with external semaphore synchronisation |
| Fallback Pipeline | OpenGL 3.3 Core; Matplotlib software mode | OpenGL fallback after Vulkan failure; software startup mode remains available |
| Published Reference Test | NVIDIA RTX A2000, 4 GB VRAM | 13.3M-ray viewport measured at 58 FPS; performance varies by data and mode |
| Denoising Engine | Optional pyoidn binding |
Explicit freeze-frame denoise and optional animation-frame denoise |
| Operating System | 64-bit Windows desktop | Portable onedir beta build; native components require release smoke testing |
Current release boundary: the checked-in distribution path is an unsigned portable beta. Installer signing, code signing, SBOM generation, and release-specific validation remain separate release controls.
That is the product history in one line: build the optic, trace the light, inspect the same rays from a new viewpoint, convert them into photometric evidence, and carry what you learned into the next design iteration.
Creator of Ray Explorer · Optical Engineer & Software Developer
Vitor Santiago develops engineering tools at the intersection of automotive lighting, physical optics, and GPU-accelerated simulation. Ray Explorer grew from a practical objective: connect optical design, high-performance ray visualization, and photometric validation in one focused engineering workflow.
Interested in evaluating Ray Explorer or discussing a collaboration?