Outdoor Lab

3D thermal sandbox
Lab menu
Scene tools
Camera & range ↗
Emitted + reflected signal
Camera position & view
m
−90° = up0° horizon · +90° down

Drag to orbit the focus point. Pan shifts the view; Overhead looks straight down.

Repeatable camera orbit

Set a start, change materials, then replay the same path. Heat pauses and the image scale locks.

Your browser needs canvas support to display this scene.
Reflective panel
Preparing the scene…
−13°F122°F
Drag to orbit · scroll/pinch to zoom · right-drag/two fingers to pan · click an object to select

Controls & model

Temperature units

Use °F / °C at the top to change every temperature control, readout, hood square, thermal scale, and challenge value. Fahrenheit is the default. Switching units preserves all surface settings and the thermal image.

Move around

Mouse: drag to orbit; scroll to zoom; right-drag or Shift-drag to pan. Pan also lets you shift the view with one finger or the left mouse button. Click an object to select it. In Move object mode, drag an object across the ground plane.

Touch: one finger orbits; two fingers pan and pinch to zoom. Select Move object to reposition a shape. Use the position, height, turn, and tilt sliders for precise adjustments.

Camera: use the height slider or number field to move from 0.2 to 100 m above the ground. Overhead positions you directly above the selected object, looking straight down. Both orbit and free look reach a full 90° up or down. Look straight up preserves your camera position; Stand under drone positions you beneath the drone at standing height. Drag away from straight up to inspect it obliquely. Free look turns the camera from its current position; drag to aim, pan to shift sideways or vertically, and scroll or pinch to move forward/back. Height changes preserve your viewing direction.

Keyboard: focus the scene, then use arrows to turn, WASD to pan (W/S move forward/back in Free look), Q/E to lower/raise the camera, and +/− to zoom. In Move object mode, arrows move the selected object; hold Shift for larger movement steps.

Truck surfaces

Select Pickup truck or Comparison truck, then click a surface or use the surface menu. Each truck has its own 52 surfaces, nine hood squares, and bulk selection. Turn on Bulk select to add or remove parts with a tap. Ctrl-click or Command-click also selects multiple parts. All truck selects that truck’s 52 surfaces; All hood selects its nine squares. Expand Choose parts by name to select surfaces that are out of view.

Temperature, emissivity, and reflection finish apply to every selected surface. Changing one setting leaves the other settings alone. Mixed means the selected parts have different values; moving that slider assigns one value to all of them. The white spot marker and apparent-temperature reading refer to the active surface. Selected surfaces have an outline.

Matte sets diffuse reflection and Reflective sets mirror-like reflection. Mirror share permits intermediate settings. These controls work on every truck part and on the simple objects; they do not change emissivity. The hood grid is viewed from the front: row 1 touches the windshield and row 3 touches the bumper. View hood aligns the camera with the grid.

The truck moves and rotates as one object. Left and right in surface names are from the driver's seat. Windows are opaque LWIR surfaces in this model. Surface temperatures and material settings are illustrative inputs, not measured vehicle data. Hood lines in the visible image and the selected surface outline are editing guides.

Drone overhead

Drone overhead starts an upward-looking experiment. The hovering quadcopter has independent body top/underside, arms, motors, propellers, camera and landing-gear surfaces. Set altitude from 1 to 100 m, move it across the scene, and edit temperature, emissivity or finish on individual parts or in bulk. Stand under drone recentres the camera beneath its new position. Propellers are represented by fixed blades; flight dynamics and rotor motion are not simulated. Material and temperature defaults are illustrative.

Soldier, boat & water

The soldier has 44 editable regions, including nine chest and nine back panels. Switch the panel grid between Chest and Back. Face, hands, sleeves, trousers, boots, helmet and backpack can be edited separately or selected together. The backpack covers part of the back grid: covered regions remain editable by name and influence the simplified heat model.

The centre-console boat has 59 editable surfaces across hull, deck, console, windshield, seating and engine cover. Water occupies the shoreline area at x = 3.4–14 m and z = −10–12 m. Moving or tilting the boat can lift it out of the water. Submerged bottom panels exchange heat with water using an illustrative coefficient of 40 W/m²·K; the engine toggle heats both truck hoods and the boat engine cover.

Water uses unpolarized complex Fresnel reflection with representative 10 μm optical constants n = 1.218, k = 0.0508 from Hale and Querry. That single-wavelength angular law approximates the 8–14 μm band. Chop perturbs normals on a flat intersection plane. It does not model wave motion, foam, multiple water reflections or wavelength-dependent sea radiance. Water temperature stays prescribed.

Clothing has one outer thermal node driven by prescribed skin temperature. Its conductance is 1 / (insulation + air-gap resistance). The air gap combines illustrative air conduction (0.026 W/m·K) and radiation (5 W/m²·K). Bare skin regions use an illustrative coupling of 30 W/m²·K. Defaults demonstrate mechanisms and are not measured person or uniform data.

Present & compare

Named experiment buttons frame the trucks, soldier or boat; switching experiments replaces the scene. Reset demo returns to the last experiment start. Entering Presentation mode captures your current custom setup as the reset point and shows larger touch controls. Surface settings still allow bulk editing through All parts.

Actual temperature maps the prescribed or simulated outer-surface temperature directly, without camera blur or noise. The sky remains its equivalent radiance temperature; it has no actual surface temperature. Switching temperature views locks the current scale so the two images can be compared. Select Auto scene range to unlock it.

Repeatable camera orbit saves a starting camera and rotates around its focus. Replay uses the same camera path after material changes. Capturing an orbit pauses heat and locks the image scale; manual camera motion pauses playback. The prediction challenge changes only the active surface, pauses heat, and shows the ideal apparent temperature plus emitted/reflected radiance. “About the same” means a change smaller than 0.1°C (0.18°F).

Ground comparison

Show comparison truck adds or removes the second truck from the scene, including reflections and visible shadows. Its settings and position are retained. Ideal ground match starts on: all its parts are matte blackbody emitters (ε = 1), with their actual temperature automatically set to the marked ground sample’s apparent LWIR temperature. This is slightly different from the ground’s actual temperature because the ground also reflects radiation. The truck still uses the same radiance calculation as every other object.

This ideal reference matches the model’s uniform ground signal; it does not match sky, trees, or other objects behind it. It updates when surroundings change. Turn matching off or edit any comparison surface to use independent temperatures, emissivities, and finishes. Turn it back on to reset all comparison surfaces to the reference. Selection outlines remain visible as editing guides; select the other truck to judge the match without an outline. This is an ideal teaching reference, not a prediction of a coating or real vehicle.

Sky & treeline

The trees are twice the original height, with overlapping crowns, a second row, and undergrowth forming a continuous forest edge. Cloud cover enables a separate, editable cloud radiant temperature and an overcast visible appearance. Both sky settings are retained while you switch between them. Sky radiance changes the thermal background and reflected radiation; manually set object temperatures remain fixed. Advanced controls add fractional cloud coverage, a clear-sky horizon gradient, and terrain patches. Cloud patterns are illustrative directional masks, not a weather model.

Try this

  1. Select the panel and keep emissivity low. Change its tilt and move the camera. Watch the reflected sky, ground, trees, and objects change.
  2. Compare the sphere and box at the same actual temperature. Raise emissivity toward 1 to make the surface’s own temperature dominate.
  3. Raise the sky’s radiant temperature or the ground temperature. A low-emissivity surface can appear warmer as well as cooler.
  4. Try the challenge. Match the panel’s centre spot to the surface behind it, then orbit to see whether the match holds.

What is calculated

Every viewing ray intersects the 3D geometry. The outgoing 8–14 μm band radiance is emitted radiance + reflected radiance. Planck’s law supplies the band radiance and its inverse supplies the apparent, blackbody-equivalent temperature. Camera emissivity is set to 1.

Reflectivity is 1 − emissivity for these opaque, band-gray surfaces. Mirror share blends specular and Lambertian diffuse reflection; roughness broadens the specular share. It is a model parameter, not a measured roughness value. Mirror rays hit the actual scene, including other surfaces of the same model. Diffuse surroundings use hemisphere samples: six probes per simple object or curved model region, one per flat model surface, and a spatial grid of ground probes. The point inspector samples the actual chosen point.

The model resolves one reflected scene intersection. Further reflections close with a normalized sky/ground/treeline approximation. Fine diffuse reflections and repeated mirror reflections are approximate. Grass and shaded ground use emissivity 0.95, soil 0.94, pavement 0.96, and trees 0.98. Terrain temperatures are editable. These values are illustrative.

Roughness, heat & validation

Roughness spreads the specular share through eight deterministic GGX normal samples, normalized to conserve the reflected band signal. This is an approximate reflection lobe, not a complete measured BRDF. Angle dependence under the surface controls offers an illustrative Schlick-style falloff or editable ε values every 15°. Imported angular measurements take precedence; manual edits clear the measurement label. Curves may rise or fall with angle. Camera rays use the angle to each local surface normal, including curved surfaces. There is no extra cosine multiplier on resolved radiance; projected area changes through geometry. Imported optical data do not imply measured thermal capacity or solar properties; supply those separately.

The heat solver uses 0.25-second substeps and stops temperatures at its −50 to 150°C model bounds (−58 to 302°F). Wind changes an illustrative convection coefficient h = 5 + 3.5v W/m²·K. Broadband sky radiation uses an independently editable sky emissivity and air temperature; it does not treat the LWIR sky brightness as a bolometric temperature. The directional 8–14 µm curve and roughness do not alter the independently set broadband emissivity in this simplified heat balance.

Named scenarios save immutable snapshots with shareable links, material profiles, camera state and measurement records. Attached reference images are saved with the scenario. Anyone with a link can view that snapshot; future edits require a new save. Downloaded JSON also preserves the settings. Built-in materials are illustrative; only user-imported records can be labeled measured. Comparing recorded spot values gives residuals, not automatic calibration or a claim of validated vehicle performance.

How to interpret it

FLIR radiation model · Angle & reflection · Diffuse reflection · NIST radiance temperature · Hale & Querry: water optical constants · Clothing thermography study

Scenarios & sharing

Start an experiment

Presets replace the current scene. Save or export your settings first.

Save this setup

Saves every object, materials, water, clothing, camera orbit, environment, heat state and observations. Anyone with the link can view and forward the saved snapshot. Changes after saving stay in your current session until you save again.

What stays local, and what is shared?

The simulation runs in your browser. Editing settings, opening material files and previewing reference images do not upload them. Save & create share link sends the named setup, material profiles, observations and any attached reference image to this site's storage. Images may contain embedded metadata. Use only information suitable for public release.

Shared links have no viewer login and no automatic expiry. Removing information from your current session does not remove an older saved snapshot. Download scenario JSON or Save offline keeps a local copy without creating a new shared record. Online saving has usage limits; local controls and exports remain available.

This application adds no advertising, analytics or tracking cookies. The hosting provider may process request logs and security cookies. The application is intended for public demonstrations.

Import / export

JSON exports contain settings and records. Reference-image links need the online site. Save offline downloads a self-contained copy of the outdoor tool and current settings. Camera & range opens a separate bench with its own offline download.

Predict the change

CHAMIR · adaptive emissivity

Switch a material property. Watch the thermal signal change.

Illustrative values · no sample loadedThree identical matte panels · actual temperature held fixed · 8–14 µm

Idealized instant switching; no hardware response time implied.

Change the viewing angle

Low stateHigh state

Every panel centre has the selected viewing angle. Readouts and traces use those centres; edge pixels may differ. Moving the angle slider pauses playback while preserving the switching state.

Actual surface temperatureAll three panels stay at
OrdinaryPassive low-εCHAMIR
Thermal-camera appearanceEmission + reflection · camera ε = 1
OrdinaryPassive low-εCHAMIR
Locked scale · both views
Panel centre readouts · radiance in W/m²·sr
Panelε toward cameraActualApparentEmittedReflected

CHAMIR signal

Switching trace

0.0 s
CHAMIR εCHAMIR apparent temperatureActual temperature · all panels

Experiment settings & sample data

One CHAMIR sample

Illustrative endpoints; no sample measurement is loaded.

Import both emissivity states from the same sample, band and conditions. Optional time/ε curves describe normal-view low→high and high→low transitions. Optional angular.low and angular.high arrays supply [degrees, ε] pairs from 0° to 90°, resampled every 15°. Intermediate switching states interpolate between the two angular curves; those intermediate angular responses are modeled. User-supplied measurements are labeled by their source. Editing an endpoint returns to illustrative values.

Surroundings & display

Surroundings supply a prescribed hemispherical radiance to every panel. Mixed sources are averaged in radiance, using projected solid-angle weights. The background displays their equivalent radiative temperature. Geometry, matte finish and temperature stay identical; no material-to-material reflections or heat evolution are added.

Opaque band-gray model: L(θ) = ε(θ)B(T) + [1 − ε(θ)]Lsurroundings. Apparent temperature is the 8–14 µm blackbody-equivalent temperature. Both images and the readouts use the same radiometry. Comparison coatings and matte finish remain illustrative when CHAMIR measurements are imported. Emissivity switching does not imply changing surface roughness. Playback applies a preset switching sequence; it is not an automatic adaptation controller.