# Science Lab — model notes All units in the calculations are explicit. Visual dimensions of the instruments are illustrative. Equations, readouts and charts share the same domain models. Numerical reference values were verified independently before acceptance tests were written. ## Chemistry: the same gas in less space **Try:** choose Half volume. Volume changes from 2.00 L to 1.00 L, and absolute pressure increases from 100.0 kPa to 200.0 kPa. Double volume gives 4.00 L and 50.0 kPa. For a fixed amount of ideal gas at constant temperature, PV is constant. Here P(V) = 200/V, with P in kPa and V in L; temperature is fixed at 300 K. Absolute pressure is measured from a vacuum. The allowed volume is 1–4 L, so the model never divides by zero. The apparatus represents a sequence of isothermal equilibrium states. Its thermal jacket represents heat exchange with a 300 K reservoir. An arbitrarily fast real compression would not necessarily stay at 300 K. The cutaway removes front/top material from the picture to expose the contents; the gas is sealed by the piston in the model. Thirty-two dots illustrate molecular motion. Count, drawn size and speed distribution stay fixed. They reflect within the displayed gas region and encounter walls more often when that region is smaller. During an idealized volume change, positions are constrained to the changing region. They are not a molecular-dynamics pressure estimator: the readout follows Boyle’s law. Pressure is always derived from the displayed volume during easing. References: [OpenStax Chemistry 2e, gas laws](https://openstax.org/books/chemistry-2e/pages/9-2-relating-pressure-volume-amount-and-temperature-the-ideal-gas-law); [OpenStax Chemistry 2e, kinetic-molecular theory](https://openstax.org/books/chemistry-2e/pages/9-5-the-kinetic-molecular-theory). ## Physics: adding disturbances **Try:** put the probe at Equal paths. Compare 0° with 180° after the startup indicator clears. At 0° the amplitude is 2.0 mm. At 180° the equal contributions cancel. The sources are at (−0.10, 0) and (+0.10, 0) metres. Each amplitude A is 0.001 m. Wave speed c is 0.30 m/s; frequency f spans 1–3 Hz, initially 1.50 Hz. Relative phase φ₂ spans 0–2π; φ₁ = 0. λ = c/f; k = 2π/λ; ω = 2πf. hᵢ(x,y,t) = A sin(krᵢ − ωt + φᵢ); h = h₁ + h₂. Signed displacements add. At equal distances and equal source phase, the sum has amplitude 2A. At equal distances and phase difference π, sin(θ + π) = −sin θ, so h = 0. At any established point with two sources, amplitude is 2A |cos((k(r₂−r₁)+φ₂)/2)|. One source sets h₂ exactly to zero. Doubling f halves λ at fixed c. This deliberately idealized model uses equal amplitudes and constant, nondispersive speed. It omits spreading, damping, dispersion and reflected waves. It does not claim to reproduce all behavior of actual water. The visual basin edges smoothly mask the optics; this is not a physical absorbing layer in the sampled field. Useful probe coordinates remain inside that mask. Each source is multiplied by smoothstep(0, 0.18 s, t − r/c). Its disturbance therefore arrives after r/c with a smooth onset. Parameter changes fade the previous field over 0.22 s, reset simulation time, then restart emission from the sources. The interface distinguishes this transient from established interference. While clearing, readouts and shader include the same fading gain. Paused parameter changes still deliberately clear/restart the experiment. Reduced motion can display a representative settled snapshot at t = 2 s. The trace samples the present setting at the current probe location over the last two simulation seconds. It clears on restart; it is not a stored trace from previous probe locations. Playback speed affects simulated time per wall-clock second, never f or c. Stepping adds 0.05 simulation seconds. WebGL computes surface normals from numerical spatial derivatives of the same field. Reflections depend on those normals; brightness is not a direct signed displacement measurement. The 1 mm motion is enlarged ×8 for visibility. Markers remain at fixed horizontal coordinates while moving vertically. The fallback samples field gradients on an SVG mesh, with the same controls and signed readings. Reference: [OpenStax Physics, superposition and interference](https://openstax.org/books/physics/pages/13-3-wave-interaction-superposition-and-interference). ## Geometry: a plane through a cube **Try:** choose Central diagonal, reveal the section, and turn the specimen. The hexagon’s picture changes; its area and side lengths do not. Cube-local coordinates satisfy −a/2 ≤ x,y,z ≤ a/2, initially a = 2. The plane is n·p = d, with unit normal n. Its meaningful offset range is ±d_max, where d_max = (a/2)(|nₓ|+|nᵧ|+|n_z|). Viewing rotation is a separate rigid transformation of the entire mount and specimen. The section algorithm intersects the plane with all 12 edges, includes on-plane endpoints, deduplicates within a scale-aware tolerance of 4a×10⁻⁹, orders the points in an orthonormal plane basis, and uses the shoelace formula for area. Side lengths and interior angles determine whether the polygon is regular. A point or line has zero area; a coincident face is a square of positive area. ### Independent reference derivations for a = 2 1. **Face-parallel:** z = 0. The square spans 2 × 2, area **4**. 2. **Diagonal vertical:** x+y = 0. Its height is 2; its width is the diagonal of a 2 × 2 face, √(2²+2²) = 2√2. Area **4√2 ≈ 5.656854249**. 3. **Central diagonal:** x+y+z = 0. The six vertices are permutations of (1,0,−1). Adjacent vertices differ in two coordinates by 1, so each side is √2. Six equilateral triangles of side √2 give area 6(√3/4)(√2)² = **3√3 ≈ 5.196152423**. 4. **Near-corner:** with n = (1,1,1)/√3 and d = 2/√3, the plane is x+y+z = 2. Vertices (1,1,0), (1,0,1), (0,1,1) have side √2. Area (√3/4)(√2)² = **√3/2 ≈ 0.866025404**. Uniform scaling by s multiplies every length by s and every area by s². A rigid viewing rotation preserves dot products, lengths and area. Reveal changes only the visible retained half-space n·p ≤ d, never the section measurement. ### Focused geometry adapter The installed Anatomy `T.split` can split a prism only along or across its extrusion axis; it does not provide general oblique live clipping. The lab uses Anatomy TURN for the actual turntable/support, rigid pose and camera. A small adapter generates the cube’s true clipped convex boundary faces on plane changes. Rotation transforms and shades those faces using the same pose; outward-face visibility gives correct occlusion for this convex specimen. No hidden edges are drawn. The section is the actual cap polygon, not an independent shape placed over the solid. The adapter retains complete 3D boundary faces and normals for audit. Independent checks solve the plane against coordinate-face pairs, compare projections to direct sine/cosine rotation, and compare visible face centroids against nearest ray-plane intersections. The stock Anatomy audit applies to the mount and static apparatus. The custom specimen checks are explicitly reported separately. References: [Anatomy source](https://github.com/wheresryan22/anatomy), [Anatomy skill](https://skills.wheresryan.sh/anatomy). Cube derivations above are direct mathematical calculations, not empirical physical laws.