Thermal Camera Simulator Back
Thermal Analysis · Thermography

Thermal Camera Simulator — 2D Heat Distribution

Paint heat sources, cold sinks, and insulators freely on the canvas. The Laplace equation is solved with Jacobi iteration to render a realistic thermography-style temperature map.

Draw Mode
Brush size
Heat source temperature
°C
Cold sink temperature
°C
Iterations
Color palette
Solve
Presets
Thermal
0°C
Colorbar
80°C
Move mouse to read temperature
Max: Min: Avg:

Drag to paint | Select mode then click/drag

Theory & Key Formulas

Laplace Equation

$$\nabla^2 T = \frac{\partial^2 T}{\partial x^2}+\frac{\partial^2 T}{\partial y^2}=0$$

Jacobi iteration update:

$$T_{i,j}^{n+1}= \frac{T_{i+1,j}^n+T_{i-1,j}^n+T_{i,j+1}^n+T_{i,j-1}^n}{4}$$

What is Steady-State Heat Conduction?

🙋
What exactly is this simulator showing? It looks like a colorful grid that changes when I paint on it.
🎓
Basically, it's simulating how heat spreads and settles in a flat object, like a metal plate. The colors represent temperature. When you paint a red "heat source" with the slider set to, say, 100°C, you're adding energy. The simulator then calculates how that heat diffuses until it reaches a steady state where temperatures don't change anymore. Try painting a hot spot and watch the heat bleed into the cooler areas.
🙋
Wait, really? So the blue "cold sinks" I can paint are like holding parts of the plate at a fixed cold temperature?
🎓
Exactly! In practice, a cold sink could be a cooling pipe or the edge of the plate touching ice. The simulator fixes those cells at the temperature you set with the "Cold sink" slider. The "insulator" brush is just as important—it creates barriers heat can't cross. For instance, try drawing an insulating wall between a hot and a cold spot; you'll see a sharp temperature gradient form.
🙋
What does the "Iterations" slider do? When I increase it, the colors seem to smooth out more.
🎓
That's the core of the calculation! The simulator uses a method called Jacobi iteration. Each "iteration" is one step where every cell updates its temperature by averaging its four neighbors. More iterations let the simulation run longer, getting closer to the final, perfectly smooth steady state. If you set iterations to 1 and click "Solve," you'll see just one averaging pass—it's very blocky. Crank it up to see it converge.

Physical Model & Key Equations

At steady state (when temperatures no longer change with time), heat conduction in a solid without internal heat generation is governed by Laplace's equation. This means the net heat flow into any tiny region is zero.

$$\nabla^2 T = \frac{\partial^2 T}{\partial x^2}+\frac{\partial^2 T}{\partial y^2}=0$$

Here, $T$ is temperature, and $\nabla^2$ is the Laplace operator. The equation states that the second spatial derivatives (a measure of curvature) of temperature sum to zero, leading to smooth, harmonic temperature distributions.

To solve this equation numerically on a pixel grid, we use the Jacobi iteration method. We discretize the domain into cells and repeatedly update each cell's temperature based on its neighbors.

$$T_{i,j}^{n+1}= \frac{T_{i+1,j}^n+T_{i-1,j}^n+T_{i,j+1}^n+T_{i,j-1}^n}{4}$$

Here, $T_{i,j}^{n+1}$ is the new temperature at grid position (i,j), calculated as the average of its four orthogonal neighbors' temperatures from the previous iteration step $n$. Cells marked as heat sources, cold sinks, or insulators are held fixed and do not update.

Real-World Applications

Electronics Cooling: Designing heat sinks and circuit board layouts to prevent overheating. Engineers use this exact type of simulation to place hot components (like CPUs) and cooling elements optimally, ensuring efficient heat spread to the edges of the device.

Building Science: Analyzing thermal bridges and insulation effectiveness in walls. By modeling materials with different conductivities (like wood studs vs. fiberglass insulation), architects can predict cold spots that might lead to condensation and mold growth.

Geothermal Studies: Modeling the steady-state temperature distribution in the ground around buried pipelines or geothermal heat exchange systems. This helps in sizing systems and predicting long-term efficiency.

Manufacturing & Materials Processing: Predicting temperature profiles during processes like annealing metal sheets or curing composite materials. Uniform heating is critical for product quality, and simulations help design oven heating elements and conveyor layouts.

Common Misunderstandings and Points to Note

There are a few key points you should be especially mindful of when starting to use this tool. First, understand that "the simulation results are not absolute temperature values." The "100°C" or "0°C" on the tool are relative benchmarks. In reality, the actual heat generation (wattage) of a source and the thermal conductivity of materials significantly alter the outcome. For instance, the same "100°C" setting will have a completely different thermal impact on the surroundings for a small LED versus a large CPU. Think of this tool as a way to see "relatively where temperatures are high and how heat tends to spread."

Next, be aware of boundary condition setup errors. In this simulator, the four edges of the board are treated as "adiabatic walls" (no heat escapes). However, a real PCB is exposed to air, and building walls are in contact with outside air. Therefore, if heat appears excessively trapped in the simulation, the real-world temperature is likely lower. In practice, figuring out how to model this "heat exchange with the surroundings" is often the most challenging part.

Finally, consider the interpretation of "steady state." The tool calculates a steady state through iteration, but the time it takes for a real product to reach "steady state" is not negligible. For example, a smartphone heats up rapidly right after launching a heavy game, but what you see on a thermogram is the state a moment later. Since the simulation results show the "final stabilized temperature distribution," this tool alone cannot evaluate the risk of transient thermal runaway. Use it as a first step in your basic design process.

How to Use

  1. Set the heat source temperature using hotTempSlider (range 50–500°C) and paint active regions on the canvas with the heat brush.
  2. Adjust coldTempSlider (0–50°C) to define sink zones, then paint cold areas to establish boundary conditions.
  3. Increase iterSlider to run more Jacobi iterations (50–500 steps); higher iterations refine the steady-state temperature field and improve color gradient accuracy.
  4. Observe the thermal camera rendering update in real-time as the solver converges toward equilibrium.

Worked Example

Simulate a steel plate (0.5 m × 0.5 m, k=50 W/m·K) with a 300°C heat source applied to the left edge and a 20°C cooling sink on the right edge. Paint the left region at hotTempVal=300, paint the right region at coldTempVal=20, and run iterSlider=250 iterations. The thermal camera displays a linear gradient from orange (≈280°C mid-plate) to blue (≈30°C near sink), with isothermal contours visible after 200+ iterations. Time to convergence: approximately 15–20 solver steps for 0.01°C residual accuracy.

Practical Notes

  1. Use brushSlider to vary brush radius (5–50 pixels); smaller brushes create localized hot spots useful for simulating point heat sources or laser thermal patterns.
  2. Paint insulator zones by setting intermediate temperatures (e.g., hotTempVal=100°C) to create thermal barriers and observe how they slow heat diffusion across the domain.
  3. For transient analysis, reset the canvas and paint a new source pattern without clearing the previous solution to visualize successive heat wave propagation.
  4. Jacobi iteration count directly affects solution accuracy; 150 iterations resolve most industrial cooling problems; use 300+ for precision aerospace thermal analysis.