Show HN: Silicon Physics Sandbox

bergkvist1 pts0 comments

Silicon Sandbox — interactive device physics

hover the die for a live readout — paint with the left button, erase with the right

Presets

PN diode<br>NMOS<br>BJT<br>Schottky<br>Resistor<br>NAND<br>AND<br>OR<br>XOR<br>Half adder<br>Full adder<br>clear

Tool

✎ Paint<br>◈ Dope<br>◎ Probe

⬤ Brush▭ Rectangle

brush3

N · donorsP · acceptors

concentration10^2.3 nᵢ

Left-drag paints the selected material · right-drag erases to vacuum.

Materials

Probes

voltage0.0

contact<br>OhmicSchottky

0 V_T ≈ 0 mV<br>✎ rename<br>remove

Switch to Probe mode and click the die to attach a voltage terminal. Click a selected probe again (or press Delete) to remove it.

🏷 add voltage label

View

electric field arrows<br>current flow particles

I–V Plotter

sweep<br>read

from<br>to<br>pts

▶ run sweep<br>log |I|

Sweeps one probe's voltage and plots the current read at another — e.g. sweep G, read D for the NMOS transfer curve. The sim stays live.

Simulation

reset to equilibrium

sub-steps / frame6

grid<br>64 × 4896 × 72<br>128 × 96160 × 120<br>192 × 144224 × 160<br>256 × 192<br>larger = slower

save layout<br>load layout

Advanced<br>moderate doping10²

heavy doping10³

SRH lifetime τ10

Schottky work fn W−6.0

Poisson sweeps24

transport sweeps10

Densities are in units of nᵢ, potentials in V_T = kT/q ≈ 25.9 mV, lengths in intrinsic Debye lengths λD ≈ 41 µm for Si.

? help<br>normalized De Mari units · SG + damped Gummel · Rust→wasm core

▮ SILICON SANDBOX

A 2D drift–diffusion simulator: Poisson + Scharfetter–Gummel carrier transport on a grid.<br>Paint a device out of silicon, oxide and metal, attach voltage probes, and watch potential,<br>carriers and current respond live.

Painting

Pick a material, then left-drag on the die to paint; right-drag erases to vacuum.

Painted regions start at charge-neutral equilibrium.

Probes

In Probe mode, click anywhere to attach a voltage terminal (ohmic contact on silicon; equipotential on metal).

Click a probe to select it, drag the voltage slider; click it again or press ⌫ to remove.

The chip list shows each probe's live terminal current.

Doping brush

The Dope tool paints net doping into any semiconductor cell (Si, Ge, GaAs) without changing the material —<br>pick N or P and a concentration, then drag. Right-drag resets cells to intrinsic. Graded and asymmetric junctions welcome.

The Advanced doping sliders re-dope all cells of the four named Si materials and overwrite brushed values there.

Contacts & Schottky

Each probe can be Ohmic (carriers pinned to doping equilibrium) or Schottky : the surface is pinned to the<br>metal's Fermi level offset by the work function W (Advanced) — with W<br>Logic presets

NAND, AND, OR, XOR and the full adder are real circuits: ratioed-NMOS stages with silicon pull-up<br>resistors, floating output nodes, and (XOR/adder) buried N+ crossunders. ▸ amber tags mark input<br>terminals — set them to 0 / +48 via the chips (same-letter chips are one net and move together).<br>Green tags mark outputs with their live node voltage. Internal nets show gray ≈ tags.

I–V plotter

Sweeps one probe and plots the current read at another, live: sweep G / read D gives the NMOS transfer curve,<br>sweep D / read D the output curve, sweep A / read A the diode I–V. Toggle log |I| for subthreshold slopes.

Materials note

Ge and GaAs implement per-material nᵢ and mobilities (ratios to Si: μₙ 2.8× / 6.1×). Their nᵢ ratios are compressed<br>(40 and 0.02 vs the physical 2.4·10³ and 2·10⁻⁴) so junctions stay resolvable on this grid; interfaces to Si are<br>nᵢ-heterojunctions only — no band-offset physics.

Save / load layout stores materials, per-cell doping and probes as JSON.

Reading the views

ψ — electrostatic potential (diverging map). log n / log p — carrier densities, log scale.

net charge — space charge; depletion regions show as colored bands.

|J| & particles — conduction current; particles ride the actual computed J field.

Keys

Space play/pause · S step · R reset · 1..8 materials ·<br>B paint · P probe · ⌫ delete probe · ? help · Esc close

close

probe drag voltage read silicon live

Related Articles