[Physics]: Lab Notebook & telemetry workflow gaps in quantum-tunneling, rc-rl-circuits, and maxwell-boltzmann

Abierto
#52 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
react, typescript

Línea de trabajo

Start with the referenced entry points: src/simulations/sandboxGuides.ts, src/ui/components/LiveTelemetryCard.tsx, src/simulations/physics/rc-rl-circuits/TransientRenderer2D.ts, and the virtual instrument components. Reproduce the described notebook recording, sparkline scaling, RL trace and labels, and guide or overlay issues in the browser. The issue is done when the listed workflows and displays behave consistently with their stated values and instructions.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

physics-review

Found during the independent browser and learner-workflow review in #49 (Items 4 & 6).

1. quantum-tunneling lab protocol Step 3 cannot be completed in the in-app Lab Notebook

The quantum-tunneling lab protocol (src/simulations/sandboxGuides.ts lines 148–150) instructs the learner:

  1. Set particle energy $E = 3$ below barrier height $V_0 = 9$, and wavepacket width $\sigma = 1.2$.
  2. Sweep barrier width $d$ from $0.5$ to $1.5$. Each change restarts the run: record $T$ when the card says settled.
  3. Fit $\ln T$ against $d$: the slope comes out near $-6.1$...

When attempting this in the browser using the Record button and Lab Notebook:

  • TelemetryRecorder.lastRecordedSimTime blocks recording after d changes: Changing barrierWidth ($d$) calls QuantumEngine.reset(), which resets this.time = 0 inside the engine without resetting TelemetryRecorder.lastRecordedSimTime. In TelemetryRecorder.sample(), if (point.t - this.lastRecordedSimTime >= this.sampleInterval) then sees a negative point.t - lastRecordedSimTime on the next width until this.time exceeds the maximum t reached on the previous width. If the learner recorded at $d = 0.5$ up to $t = 4.6\text{ s}$ and then tries to record at $d = 0.7$ during its settled window ($t = 4.265\text{–}4.55\text{ s}$), zero samples are recorded. Conversely, clicking the transport Reset button calls recorder.reset(), which erases all previously recorded widths.
  • Continuous 50 Hz recording buffers un-settled in-flight points: Turning Record on during a run buffers transmission_T every $20\text{ ms}$, including pre-settled samples ($T \approx 0$), and settled is not included in QuantumEngine.getTelemetrySnapshot(). There is no button to log a single settled $(d, T)$ data point per width into the Lab Notebook.
2. quantum-tunneling Live Telemetry Card sparkline is $100\times$ too small (0.06 % vs 6.2%)
  • In src/ui/components/LiveTelemetryCard.tsx:
    • Line 258 computes const tPercent = Math.min(100, Math.max(0, (state.transmission ?? 0) * 100)); and displays 6.2% in the Transmission T box.
    • Line 52 pushes raw state.transmission (0.0625, a fraction in $[0, 1]$) into history, and lines 297–302 pass data={history} with unit="%" to TelemetrySparkline.
    • As a result, at the default settled state ($t = 3.32\text{ s}$), the card simultaneously displays Transmission T: 6.2% and Transmission T(t): 0.06 % right below it.
3. rc-rl-circuits oscilloscope trace overflow, hardcoded schematic labels, and multi-cycle fit trap
  • Oscilloscope trace draws outside the screen and off the canvas in RL mode: In src/simulations/physics/rc-rl-circuits/TransientRenderer2D.ts line 321, mapY(v) maps $0\text{ V}$ to scrT + 0.85 * scrH and $+15\text{ V}$ to scrT + 0.15 * scrH without ctx.clip(). During the discharging half-cycle in RL mode ($V_{\text{in}} = 0\text{ V}$), the inductor back-EMF is $V_L = -I R = -12\text{ V}$, which maps to scrT + 1.41 * scrH — drawing the cyan trace straight through the bottom of the oscilloscope bezel, through the bottom text banner, and off the bottom of the canvas.
  • Hardcoded & clipped schematic/scope labels: TransientRenderer2D.ts lines 156, 179, 196 hardcode 'R (100Ω)', 'C (100μF)', and 'L (100mH)' regardless of the slider settings (and clip 'C (100μF)' / 'L (100mH)' at the right border of the schematic box, plus 'CH2: V_out(t) [Relaxation]' at the right border of the oscilloscope bezel). Line 353 also hardcodes const v63 = 12.0 * 0.632; // 7.58 V (63.2% (1-1/e) = 7.6V), even when $V_0 \ne 12\text{ V}$ or in RL mode where $V_L(t)$ decays through $V_0 / e \approx 36.8%$ ($4.4\text{ V}$).
  • Sample-rate claim & multi-cycle recording in RL mode: sandboxGuides.ts line 417 says "The clock samples every 5 ms, so choose a τ of 10 ms or more: for RL use L = 500 mH and R = 10 Ω (τ = 50 ms)", whereas TelemetryRecorder samples at $50\text{ Hz}$ (every $20\text{–}25\text{ ms}$, giving 10 samples in $200\text{ ms}$). If the learner records within the first charging half-cycle ($t \le 0.20\text{ s} < 0.25\text{ s}$ at default $f = 2\text{ Hz}$), Exponential Regression on v_component vs t recovers y = 12.0000 · e^(-20.0000x) ($R^2 = 1.0000$, $\tau = 1/20 = 50\text{ ms}$). However, if recording continues past $t = 0.50\text{ s}$ into the second square-wave cycle, fitting v_component against cumulative t fits across multiple periodic pulses and yields y = 1.8787 · e^(-1.5133x) ($R^2 = 0.0712$).
4. Minor guide & overlay issues
  • maxwell-boltzmann Lab Protocol Step 2 (sandboxGuides.ts line 126): Instructs the learner to "compare P · A with N k_B T in the Lab Notebook", whereas the Lab Notebook plots single telemetry channels (empirical_pressure $P$ vs ideal_pressure $N k_B T / A$, not the products $P \cdot A$ and $N k_B T$).
  • docs/USER_GUIDE.md line 174: States "Monitor the live norm readout confirming $\int |\psi|^2 dx \equiv 1.000000$ to 12 decimal places", whereas the readout shows 6 decimal places (1.000000) and Dirichlet boundary reflections change the discrete norm at $\sim 10^{-8}$.
  • VirtualCaliper and VirtualPhotogate (src/ui/components/VirtualCaliper.tsx, VirtualPhotogate.tsx): When both are opened, VirtualPhotogate (fixed top-24 left-6, non-draggable) overlaps VirtualCaliper (left: 200px, top: 150px) and covers the top sliders of the left parameter dock; VirtualCaliper also uses a hardcoded scale of 35 px/m (Measured Distance: 4.00 m at 140px) across all 2D and 3D sandboxes regardless of camera zoom or sandbox units (mm, AU, reduced).
Lenguaje dominante
TypeScript
Estrellas
0
Forks
0
Merge medio
52 min
PR fusionados (30 d)
44

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de danielw-sudo/agentuto

Todos los issues de danielw-sudo/agentuto

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.