Skip to content

Energy-absorption measurability review + drop-tower metrics primer - #97

Open
sgbaird wants to merge 3 commits into
mainfrom
claude/issue-94-20260806-2349
Open

Energy-absorption measurability review + drop-tower metrics primer#97
sgbaird wants to merge 3 commits into
mainfrom
claude/issue-94-20260806-2349

Conversation

@sgbaird

@sgbaird sgbaird commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Addresses #94 (requested by @me-madsen).

Adds docs/drop-tower-energy-absorption-review.md: a review of what the drop-tower shock-transmission setup can and cannot determine about per-specimen energy absorption, metric-by-metric explanations with equations and validity conditions (T, f_n, ringdown zeta, e_rebound, delta-v, SRS), three upgrade paths to a joule-level energy-absorption measurement, and a verified reading list.

No analysis scripts or published numbers are modified.

Generated with Claude Code

Written for issue #94: what the drop-tower shock-transmission setup can
and cannot determine about T3-prism energy absorption, definitions and
validity conditions for every metric in use (T, f_n, ringdown zeta,
e_rebound, Delta-v, SRS), three upgrade paths to a true joule-level
measurement, and a verified reading list.

Co-authored-by: Marcus Madsen <265197858+me-madsen@users.noreply.github.com>
@sgbaird

sgbaird commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

@claude ok, now you need to teach us

@claude

claude Bot commented Aug 7, 2026

Copy link
Copy Markdown

Claude finished @sgbaird's task in 5m 50s —— View job


A lesson: what a drop tower actually measures, and how to read our four numbers

This is the classroom version of docs/drop-tower-energy-absorption-review.md: same physics, taught from intuition up, with worked examples using our real numbers and a short quiz at the end.


1. The one idea everything hangs on

An accelerometer measures acceleration versus time. That's it. Every quantity we report is a shape extracted from that curve. To get to energy you need two more ingredients: a mass (to turn acceleration into force, F = Ma) and a displacement (to turn force into work, E = ∫F dx). Our setup logs neither the falling mass nor any displacement of the specimen — which is the reason no result in this program can currently be stated in joules. Not a software limitation; an information-theoretic one. Keep that in mind and everything else in the review doc follows.

2. The mental model: a mass on a spring, riding a moving floor

Picture the specimen as a single mass m on a spring k with a little damper, bolted to a floor (the plate) that suddenly decelerates. This "single-degree-of-freedom oscillator" is the workhorse model of all shock analysis, and each of our metrics is just this model asked a different question:

question you ask the oscillator metric that answers it
How hard was the floor hit, integrated? Δv
How long did the hit last? τ (pulse width)
How hard did the mass shake relative to the floor? T, or properly the SRS
What note does it ring at afterwards? f_n
How fast does the ringing die out? ζ
How bouncy is the mass–floor contact? e_rebound

3. Reading one drop record, left to right

The pulse and Δv. The base channel sees a ~300 G half-sine lasting a couple of milliseconds. The area under it is the velocity change: Δv = ∫a dt. Worked check: a 60 in (1.524 m) free fall arrives at v = √(2gh) = √(2·9.81·1.524) ≈ 5.47 m/s — exactly the Δv we measure on a healthy tower. That's why Δv is our free rig-health gauge: it should equal free-fall speed, every drop. During the pin-break sessions it read ~4.6 m/s. Energy scales with , so the tower was silently eating 1 − (4.6/5.47)² ≈ 29% of the drop energy — issue #92's 26–38% range, recovered from one number.

The ride-through and T. During the pulse the specimen is too stiff-and-fast (see §4) to do anything but move with the plate, so the top vertex peak ≈ base peak and T ≈ 1. This is why T is our weakest discriminator: everything rides the pulse, so everything scores ~1.

The ringdown: f_n and ζ. After the pulse, the specimen is a struck tuning fork: free vibration at its natural frequency f_n ≈ (1/2π)√(k/m) ≈ 520 Hz, decaying. Two things to internalize:

  • f_n is a prestress gauge for tensegrity. A tensegrity gets its stiffness largely from member pre-tension — like a guitar string, tighter means a higher note. So f_n drift between prints or sessions is a tension-health readout, not just a stiffness number (Ashwear & Eriksson 2014).
  • ζ is the energy metric hiding in plain sight. The envelope of the ringdown is e^(−ζωₙt). Energy goes as amplitude², so the fraction of vibrational energy lost per cycle is 1 − e^(−2δ) ≈ 4πζ (with log decrement δ = 2πζ/√(1−ζ²)). At our ζ ≈ 0.07 that's ~58% of the vibrational energy dissipated every single cycle, and the envelope time constant is 1/(ζωₙ) = 1/(0.07·2π·520) ≈ 4.4 ms — which is precisely why our usable ringdowns are only 5–13 ms long. The signal doesn't end because the record does; it ends because the specimen destroys its own vibration that fast.

The log-scale panel is the whole fitting method: a clean single-mode decay is a straight line in log-amplitude, and its slope is −ζωₙ. That's also why the r² gate matters — if the log-envelope isn't straight (r² < 0.85), two modes or a secondary event are superposed, and the "ζ" the fit returns describes nothing physical.

The hop and e_rebound. The vertex separates and lands back t_second later. Ballistics does the rest: something that flies for t under gravity left with v_sep = g·t/2. Worked example with t_second = 25 ms: v_sep = 9.81·0.025/2 = 0.123 m/s, and e_rebound = 0.123/5.47 ≈ 0.022 — specimen 1's actual value. It's a coefficient of restitution measured by timing between bounces (a classic classroom technique — Bernstein 1977). Energy view: the returned fraction is e² ≈ 0.05%, i.e. the vertex–plate interaction is ~99.95% dissipative, and what e_rebound measures is the partition — a dimensionless constant of the specimen that survived both the session change and the tower damage. That robustness is exactly what you want in an optimization objective.

4. Why "how fast is your structure vs. how fast is the hit" decides everything

Shock severity isn't about G's alone — it's about the ratio of the structure's period to the pulse duration, captured by the dimensionless product f_n·τ. The shock response spectrum (SRS) makes this quantitative: sweep an imaginary family of oscillators across frequency, ride each on the measured pulse, plot peak response.

Three regimes: soft structures (f·τ ≪ 1) can't follow the pulse and are isolated; structures near f·τ ≈ 0.5 get amplified (the pulse pumps them near resonance); stiff structures (f·τ ≫ 1) follow the pulse quasi-statically, response ≈ input. Our specimens (f·τ ≈ 0.9–1.7) sit just past the peak — they neither isolate nor strongly amplify, they ride and then ring. If you wanted the drop tower to load the specimen harder, this figure tells you how: soften the specimen or shorten the pulse (less mat) until f·τ slides left toward the amplification peak.

5. Two vocabulary traps, so we all say the right words

  • "Transmissibility." Real transmissibility is a frequency-response function |H(f)| measured with repeated or broadband excitation plus a coherence check. Our T is a ratio of two peaks that don't even occur at the same instant, filtered, one of them a nonlinear tri-axis magnitude. Call it a filtered peak-acceleration ratio and nobody can audit-flag it (this repo's J211/Edison audits already did).
  • "Energy absorption." In the crashworthiness literature this means E_abs = ∮F dx, area of the force–displacement hysteresis loop through large deformation — strut buckling, snap-through, densification. Our specimens never leave the elastic regime in this test, so ζ and e_rebound are dissipation proxies on the small vibrational energy slice, not measurements of absorbed drop energy. Legitimate optimization signals for "attenuate and dissipate shock"; not joules. Getting joules is §4 of the review doc: a quasi-static F–d loop on a load frame (path A, recommended — it's the Pajunen/Daraio protocol), an instrumented direct impact (path B), or slo-mo velocimetry as a rig-level audit (path C). And the zero-cost move available today: start logging the masses.

6. Check your understanding

  1. The tower is moved and the drop height quietly becomes 48 in. What Δv should the health gauge read?
  2. A session logs Δv = 5.0 m/s from the full 60 in. What fraction of the drop energy is the rig losing?
  3. A specimen fits ζ = 0.10 at f_n = 520 Hz. How long until 99% of its vibrational energy is gone?
  4. A record shows the vertex landing back 30 ms after impact on a healthy tower. Which specimen does the blind data say this probably is?
Answers
  1. √(2·9.81·1.219) ≈ 4.89 m/s. (Note this overlaps the pin-break range — which is why drop height must be logged per session, or the health gauge can't tell "shorter drop" from "damaged tower.")
  2. 1 − (5.0/5.47)² ≈ 16%.
  3. Energy decays as e^(−2ζωₙt), so t = ln(100)/(2ζωₙ) = 4.605/(2·0.10·2π·520) ≈ 7.0 ms — barely inside our usable ringdown window, which is why high-ζ specimens give short fits.
  4. e_rebound = g·t/(2Δv) = 9.81·0.030/(2·5.47) ≈ 0.027 → specimen 3 (0.028–0.030 band, vs 0.019 for specimen 2 and 0.022–0.024 for specimen 1).

TL;DR of the lesson: the tower is a shock-transmission screen; every metric is an SDOF oscillator asked a different question; ζ and e_rebound are real (per-cycle and per-impact) dissipation measurements on the small vibrational slice of the energy ledger; joules require a mass and a displacement, which is why they need one of the three upgrade paths — and why logging the carriage and specimen masses should start now.
· Branch claude/issue-94-20260806-2349

Three synthetic (not measured) figures for the lesson on PR #97: anatomy
of one drop record, ringdown damping/envelope intuition, and half-sine
SRS placement of our specimens. Generated by
scripts/teaching/make_drop_tower_primer_figures.py.

Co-authored-by: Sterling G. Baird <45469701+sgbaird@users.noreply.github.com>

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sgbaird

sgbaird commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

And the zero-cost move available today: start logging the masses.

@me-madsen I think it would be worth starting to do this for specimens

@sgbaird

sgbaird commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

@claude based on video analysis, I think the deformation lasts several hundred ms or so. Wouldn't we get this info if we had several hundred ms of the accelerometer data? Look up the corresponding video analysis

@claude

claude Bot commented Aug 7, 2026

Copy link
Copy Markdown

Claude finished @sgbaird's task in 5m 55s —— View job


Looked up the video analyses and cross-checked against the DAQ records.

  • Find the video analyses (they live on the copilot/add-drop-test-protocol-again branch)
  • Check what the accelerometer records already capture (100–200 ms, not just the pulse)
  • Answer: would several hundred ms of accelerometer data give us the deformation?

Short answer

The video analyses pin this down, and the result is a bit surprising: the specimen's deformation lasts ~1–3 ms, not several hundred ms. What lasts hundreds of ms in the videos is rigid-body flight — bounce, hop, brake catch, settle — during which the specimen is measured to be re-extended and intact. And we already record 100–200 ms of accelerometer data per drop, so that window is largely captured today; the part the accelerometer can't give us is not a record-length problem but a sensor-physics problem (AC-coupled ICP accelerometers + double-integration drift). Details with the numbers below.

The corresponding video analyses (three passes, all on copilot/add-drop-test-protocol-again)

  1. docs/drop-test-video-analysis.md — the key-seat prc1kn clips from PR Add drop-test protocol, Edison synthesis, and first-data analysis #67 (13 in drops, Δv ≈ 2.6 m/s). This is almost certainly the "several hundred ms" you're remembering: the structure rebounds to ~50 % of its drop depth and settles. But a 50 %-height rebound is a ballistic flight of roughly 0.3–0.4 s — the several-hundred-ms motion is the structure in the air, with all of its deformation confined to the millisecond-scale ground contacts at each bounce.
  2. 60in-5felts-validation/video/ (7xadt6/9GMQYQ, 960 fps): impact pulse ≤ 2 capture frames ≈ 1–2 ms (optical match to the DAQ's 1.6 ms pulse), top-vertex snap-back at ~0.7× impact speed within a couple of frames, brake catch at +86–89 ms.
  3. docs/drop-test-prc1kn-video-analysis.md (60 in campaign, exact 959.04 fps from the Sony XML sidecars): deceleration bracket 1–2 frames ≈ 1–2 ms, brake catch at +76–79 ms, and the explicit limit statement: peak specimen compression falls between capture frames — even 959 fps is too slow to resolve the crush, which is why the Edison synthesis asked for ≥5000 fps DIC.

(No video is paired with the abc123 blind campaign itself — the abc123 writeup actually requests a high-speed clip of the +15 to +40 ms window to identify the hop.)

The real-time timeline of one 60-in drop

time after impact event seen by
0 – ~1.6 ms crush pulse (deformation happens here) DAQ FWHM 1.6–3.2 ms; video ≤ 2 frames
~2 – 5 ms elastic snap-back at ~0.7× impact speed video
5 – 13 ms ringdown fully decayed (ζ ≈ 6–11 %, envelope τ ≈ 4–5 ms) DAQ
17 – 35 ms vertex hop lands back (t_second) discovered in the DAQ record
76 – 89 ms anti-rebound brake catches carriage 130–150 mm up video (inside the DAQ record too)
after carriage held; specimen static, visibly intact video

One number worth internalizing when watching the clips: they play at ~32× slow motion (959 fps captured, 30 fps container). The entire impact→brake-catch sequence — 85 ms of real time — plays back over about 3 seconds. So motion that reads as "several hundred ms of deformation" on screen is ~10 ms of real time, and the genuinely-long event (the 13-in whole-body bounce) is flight, not strain.

Would several hundred ms of accelerometer data give us this info?

Your instinct is partly right — and we've already cashed it in. The current records are 100 ms @ 1.25 MHz (abc123) and 200 ms @ 125 kHz (earlier campaigns), so the hop and the brake catch are inside the record: the hop was found in the DAQ data before video confirmed it, and e_rebound = g·t_second/(2Δv) is precisely the trick of extracting hundreds-of-ms flight information from an accelerometer via bounce timing (the Bernstein method). Timing at long timescales: yes, the accelerometer delivers.

Deformation at long timescales: no, for three reasons that longer records don't fix.

  1. There is no deformation out there to measure. Both video passes at ~960 fps and the DAQ agree the deformation event spans 1–3 ms; after snap-back the specimen translates as a rigid body. The abc123 analysis reached the same conclusion from the DAQ side: "the blocker is the secondary event, not the record length" — 98 ms of post-impact record buys only 5–13 ms of usable ringdown because ζ ≈ 7 % destroys the vibration itself (and the hop interrupts what's left). By +30 ms the specimen's vibration amplitude is down ~1000× — under the noise floor no matter how long you record.
  2. The channels are AC-coupled ICP accelerometers (per the DAQ setup). Piezo/ICP sensors physically cannot see quasi-static acceleration: the −1 g free-fall shift during the bounce flight and the ~2–4 g brake deceleration spread over tens of ms are at or below the coupling corner. Longer records would faithfully capture more nothing between the sharp contact events.
  3. "Deformation" means displacement, and acceleration→displacement is double integration. With the measured baseline offsets (sd 0.6–48 G in the abc123 records), even a 1 G residual bias produces ½bt² ≈ 0.4 m of spurious displacement at t = 300 ms — versus the ~mm of real specimen deformation. Over milliseconds double integration is workable; over hundreds of ms it's noise-cubed.

What a longer record would cheaply add: bounce-count and settle timing, plus confirmation the post-catch tail is quiet. It's nearly free — keeping the same 125k-sample memory and dropping the rate to 250 kHz gives a 500 ms record — and worth doing once as a check. But it won't change any metric, and it won't yield deformation-vs-time.

If deformation info is the goal, the two instruments split cleanly by timescale: for the slow, large-amplitude part (flight, rebound, settle) the video is already the right sensor — and becomes quantitative with the plate-mounted scale recommended in §4 of the prc1kn video analysis. For the fast part where the deformation actually lives (the 1–3 ms crush), the fix is faster frames (≥5000 fps DIC) or the instrumented-impact / load-frame paths in §4 of the review doc — not longer records.

--- · Branch claude/issue-94-20260806-2349

@sgbaird

sgbaird commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

@claude is this the case even for the 60" drops?

@claude

claude Bot commented Aug 7, 2026

Copy link
Copy Markdown

Claude finished @sgbaird's task in 2m 31s —— View job


Yes — and the 60 in drops are actually where the evidence is strongest.

  • Re-read the 60 in video analyses (7xadt6/9GMQYQ validation + prc1kn 60 in campaign)
  • Cross-check against the 60 in DAQ records
  • Answer

Four independent 60 in slow-mo captures all bracket the deformation at 1–2 ms

The "~50 % rebound, several-hundred-ms" motion in the earlier reply came from the 13 in key-seat clips. The 60 in campaigns have their own video passes — and they're the better-instrumented ones, with the exact 959.04 fps time base from the Sony XML sidecars and a DAQ cross-check per drop (docs/drop-test-prc1kn-video-analysis.md, 60in-5felts-validation/video/README.md):

60 in drop video deceleration bracket DAQ pulse width (FWHM)
prc1kn drop 1 1 frame ≈ 1.0 ms 1.57 ms
prc1kn drop 2 ≤2 frames ≈ 2.1 ms 1.57 ms
7xadt6 1.0 ms 1.59 ms
9GMQYQ 1.0 ms 1.6 ms

In every 60 in clip the sequence is: arrival at free-fall speed → deceleration inside 1–2 capture frames → top-vertex elastic snap-back at ~0.68–0.70× impact speed within a couple more frames → the specimen then translates as a rigid body, visibly re-extended and intact. The DAQ agrees from its side: ringdown fully decayed by 5–13 ms (ζ ≈ 6–11 %), vertex hop landing at +17–35 ms, all well inside the 100–200 ms records.

At 60 in the "long" motion is even shorter than at 13 in

The 13 in key-seat drops were unbraked — the whole structure freely rebounded to ~50 % of its drop depth, giving the 0.3–0.4 s ballistic bounce-and-settle. The 60 in rig has the anti-rebound brake: the carriage rebounds at e* ≈ 0.35–0.47 and is caught at +76–89 ms, 130–150 mm up, then held. So at 60 in there isn't even a hundreds-of-ms flight phase — the whole impact-to-caught sequence is ~80 ms of real time, which the ~32× slow-motion playback stretches to ~3 s on screen.

Why 4.6× more energy doesn't stretch the crush

Going 13 in → 60 in multiplies drop energy ~4.6× but barely changes the pulse duration, because contact time is set by the contact stiffness and moving mass, not by drop height — for a stiff, elastic-ish contact it's roughly independent of (or weakly decreasing with) impact speed. The measured record bears this out: DAQ pulse FWHM stays in the 1.6–3.2 ms band across campaigns, and the 60 in pulses sit at the short end (1.57–1.6 ms).

One honest caveat

At 959 fps, peak compression falls between capture frames — the video firmly brackets the crush duration at 60 in but cannot resolve the deformation profile inside it. That's the standing ≥5000 fps DIC recommendation from the prc1kn video analysis (§3), and it's a faster-frames problem, not a longer-record problem.

Bottom line: for the 60 in drops specifically, four independent videos and the DAQ agree the deformation lives in a 1–2 ms window; everything after ~5 ms is rigid-body flight, and the brake ends even that by ~80 ms.

--- · Branch claude/issue-94-20260806-2349

@me-madsen

me-madsen commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

And the zero-cost move available today: start logging the masses.

@me-madsen I think it would be worth starting to do this for specimens

We have a scale accurate to the hundredths place in measuring grams that the Smash Lab has given us permission to use. I'm working with @achris0520 to have a system to digitally log all of this information.

20260810_134038

@me-madsen me-madsen mentioned this pull request Aug 10, 2026
@me-madsen

Copy link
Copy Markdown
Collaborator

@sgbaird we've created an issue to document prints #98 and this includes the weight of each print in grams.

@sgbaird

sgbaird commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator Author

@claude given the extensive context available in this repository across issues and pull requests, including hidden comments within those, due to an extensive number of comments, does this imply that there is effectively only one objective of interest that comes from the accelerometer data? Likewise that we don't get any additional information from the perspective of an optimization objective from the video data in its current frame rate. Or, is it more so that we get enough information from the accelerometer data Aunt? We're able to capture multiple objectives of interest, just that the time scale is less than what we thought. In other words, that with the accelerometer data, we're able to get some measure of deformation that would be relevant and useful in evasion optimization campaign. If there are issues with this approach, in terms of getting more than one objective of interest, iea performance property of interest, what should we do? Should we put many weights on top of each key seat after doing a little bit of redesign? Such that we would see more noticeable deformation. Should we run compression tests for every single sample using an instron?

@claude

claude Bot commented Aug 11, 2026

Copy link
Copy Markdown

Claude finished @sgbaird's task in 4m 12s —— View job


Question answered — how many objectives the accelerometer really gives, and what to change.

  • Re-read the review doc and the abc123 blind analysis (per-specimen ζ / e_rebound / f_n values)
  • Check whether the accelerometer metrics are independent objectives or one redundant signal
  • Answer: how many objectives we really have, whether video adds any, whether accel data yields deformation
  • Weigh the two proposed fixes (payload weights on the key seats vs. per-specimen Instron compression)

Short answer

Closest to your first reading, with one nuance: today the accelerometer data yields one validated specimen-level objective (e_rebound), one plausible-but-unvalidated second one (ζ), and no deformation measure — and the timescale finding is not a loophole. The discovery that the crush lasts 1–3 ms doesn't mean deformation information is hiding at short timescales in the record; it means the specimen never does anything but ride elastically, ring, and hop. There is no deformation signal to extract at any timescale, because the test never puts the specimen into the deformation regime the campaign objective ("energy absorption") lives in. And current-framerate video adds rig-audit value but no per-specimen objective. Both of your proposed fixes are good — they are, almost exactly, upgrade paths B and A from the review doc — and I'd sequence them Instron-first. Details below.

What the blind data actually says about objective count

The abc123 blind analysis ran precisely the test you're asking about: which output features order the three specimens the same way in all three arrangements (i.e., measure the specimen, not a specimen × rig interaction), with a gap exceeding within-cell noise. The scorecard (§1.2 of that doc):

feature specimen ordering consistent across A/B/C? min gap verdict as an objective
t_second / e_rebound yes (2<1<3 everywhere) 7.8 d / 3.0 d the one validated objective (they're the same physical quantity, raw vs velocity-normalized — one objective, not two)
zeta_pct (ζ) no (flips on arrangement B) 0.01 d plausible second objective, not yet validated: 3 of 9 cells fail the r² gate, and its ordering flip may be fit contamination rather than physics
f_n no (flips) 0.14 d descriptor/constraint (prestress & print-health gauge), not an objective yet
T (peak ratio) no 0.05 d weakest discriminator measured; between-specimen spread ≈ print noise
Δv, pulse FWHM rig/arrangement properties, not specimen properties

So the honest count is one, with a path to two. The already-scheduled restrained-vs-unrestrained check (§4 of the blind analysis) is the decider for ζ: tie the specimen down so the hop stops interrupting the free decay at 5–13 ms. If ζ's discrimination survives restraint with clean fits, you have a genuine second dynamic objective (per-cycle vibrational dissipation) that is mechanistically distinct from e_rebound (per-impact contact partition). If it doesn't, the accelerometer test is a one-objective instrument, full stop.

Two caveats that matter for a BO campaign regardless: everything above is n = 1 article per design (specimen 2 is one defective print, not a distribution), and the re-seating shift is ~35 % of the specimen-1-vs-2 gap on arrangement B — so single-print, single-mount evaluations of e_rebound are noisier than the headline SNRs suggest.

Why the accelerometer cannot give a deformation objective (it's regime, not timescale)

Three stacked reasons, any one of which is fatal:

  1. The specimen stays elastic. Even a perfect displacement-vs-time trace of the 1–3 ms crush would measure elastic strain that fully recovers — not E_abs = ∮F dx through buckling/densification, which is what "energy absorption" means for an absorber. Measuring the current test more precisely cannot produce a quantity the test never generates.
  2. The output channel can't be integrated to displacement. Deformation is relative displacement (top vertex minus base), and the top-vertex record is a tri-axis vector magnitude — the sign is destroyed, so double integration is meaningless even before AC-coupling and baseline drift are considered.
  3. Scale. Specimen deformation is ~mm; the baseline offsets in these records produce integration errors orders of magnitude larger than that outside the few-ms pulse window.

So: yes, we now know the relevant timescale is milliseconds rather than hundreds of milliseconds — but that knowledge removes an imagined signal (a slow crush) rather than revealing a fast one.

Video at 959 fps

As an optimization objective: no new information — peak compression falls between capture frames, and everything it resolves (flight, brake catch, snap-back timing) is rigid-body motion that t_second already captures more precisely from the DAQ. Its real current-form value is path C of the review doc: carriage velocimetry as a rig-energy audit and Δv cross-check once masses are logged. A per-specimen deformation objective from video needs ≥5000 fps DIC (the standing recommendation from the prc1kn video analysis).

Your two proposals, evaluated

Instron compression on every specimen — yes, and first. This is upgrade path A, the review doc's recommended route, and exactly the protocol of the closest published analogue (Pajunen et al. 2019, quasi-static compression + drop impact on 3D-printed tensegrity-inspired cells). One F–d cycle per specimen gives you, per print: E_abs in joules, SEA (now computable, since #98 starts logging print masses), crush-force efficiency, and stiffness k — three or four genuine objectives from minutes of load-frame time. Run 2–3 sacrificial articles to full densification first to locate the safe stroke; below that it's effectively nondestructive, so every specimen can be characterized before (or before and after) its drops. Caveat to carry: the PU print material is rate-dependent, so quasi-static joules complement rather than replace the dynamic screen.

Weights on the key seats — yes, but recognize what it is. This isn't a tweak to the current test; it's converting it into upgrade path B / an ASTM D1596-style cushion test, and that's a feature:

  • A known payload mass M with the accelerometer mounted on it turns the accelerometer into a force gauge (F = Ma), and over a ms-scale pulse single/double integration is well-conditioned — you get an F–d loop and absorbed energy per impact in joules from hardware you already own.
  • Transmitted peak G to the payload becomes a physically meaningful attenuation objective (the "protect the cargo" number that T was trying and failing to be), and sweeping the payload mass gives the classic cushion curve.
  • Added mass lowers f_n, sliding f·τ from today's ride-through zone toward the SRS amplification peak — which is precisely the "load the specimen harder" lever the SRS figure in this PR points to, and it's what pushes the structure toward the strut-buckling regime where tensegrity energy absorption actually happens.

The costs: it loads specimens much harder (sacrifice articles first, and remember this tower's pin-break history), it requires the key-seat redesign you mention plus logged masses, and it redefines the objectives — so decide before the BO campaign starts, not mid-stream.

Recommended objective stack for the campaign

  1. E_abs/SEA/CFE from per-specimen quasi-static F–d (Instron) — the direct measurement of the stated campaign objective.
  2. e_rebound from the drop tower — the validated, free, dynamic dissipation-partition objective; keep it as the screen.
  3. ζ conditionally — pending the restraint experiment.
  4. Transmitted peak G to a known payload — if/when the weighted-key-seat redesign happens; this plus E_abs gives the classic absorber tradeoff pair (absorb energy and limit transmitted shock), which is a genuinely two-dimensional Pareto front rather than two proxies for one axis.
  5. f_n as a print/prestress health constraint, not an objective.

--- · Branch claude/issue-94-20260806-2349 ·

@sgbaird

sgbaird commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator Author

@claude does this mean we can't capture the elastic response very well? I.e., peak acceleration that would be experienced by an imaginary payload in the middle is what's really coming to mind for me, in the context of a planetary lander

@claude

claude Bot commented Aug 13, 2026

Copy link
Copy Markdown

Claude finished @sgbaird's task in 2m 9s —— View job


Question answered — can we capture the elastic response, and what would an imaginary mid-payload feel?

  • Re-read the review doc (§3.3 SRS, §3.4 T, §2 verdict) and the earlier thread
  • Answer: is the elastic response captured well?
  • Connect "peak G on an imaginary payload" to the SRS, with worked lander numbers
  • Say what's computable today vs. what needs the payload-mass experiment

Short answer

Almost the opposite: the elastic response is the one thing this rig does capture well — the earlier "can't capture" caveats were all about displacement/deformation and joules, never about acceleration, which is the accelerometer's native quantity. And the specific number you're imagining — peak acceleration experienced by an imaginary payload riding this shock — has a standard name: it is exactly the shock response spectrum (§3.3 of the review doc), and it is computable today, per drop, from data we already have, no new hardware. What we cannot do yet is measure (rather than compute) it, because there is no payload mass and no sensor at the payload location. Details below.

1. What "elastic response" we do and don't capture

Captured well, at the instrumented point:

  • Peak elastic acceleration of the top vertex — the numerator of T. Bandwidth is not remotely a problem: the records are 1.25 MHz against a ~1.6 ms pulse and a ~520 Hz ring.
  • The full elastic signaturef_n (stiffness/prestress), ζ (per-cycle dissipation), the ringdown envelope. That is the elastic response, characterized to fit-quality-gated precision.

Not captured:

  • Anything at the middle of the structure. Both specimen channels are on the top vertex; the mid-height node where a lander payload would hang is uninstrumented. The f_n ≈ 520 Hz we fit is the bare structure's dominant mode, not the stiffness a payload would actually hang on.
  • A payload's response — because there is no payload. T ≈ 1 is a true physical statement about the bare specimen: at f·τ ≈ 0.9–1.7 it is too stiff relative to the pulse to isolate anything, so it rides the pulse essentially unattenuated. That's a finding about the current configuration, not a measurement failure — and it changes completely once a payload mass enters (see §3).

2. Your imaginary payload is the SRS — and we can compute it per drop, now

The SRS is defined as: take the measured base pulse, ride an imaginary spring-mounted payload of natural frequency f on it, record its peak acceleration, sweep f. That is word-for-word your question. Figure 3 of the primer is this curve for our pulse shape. Reading it in lander terms, with our healthy-tower inputs (Δv ≈ 5.47 m/s, τ ≈ 1.6 ms, ~300 G peak):

payload suspension f regime peak G the payload feels stroke it needs (≈ Δv/ω)
520 Hz (rigid, like our bare specimen) quasi-static ride-through ≈ input (~300 G) ~0
~300 Hz (f·τ ≈ 0.5) amplification up to ~1.7× input sub-mm
50 Hz isolation ω·Δv ≈ 175 G ~17 mm
14 Hz deep isolation ~50 G ~61 mm

The last two rows use the short-pulse limit, where the pulse is an impulse and the payload's peak acceleration is just ω·Δv with required suspension stroke Δv/ω. This is the core lander tradeoff in one line: Δv is fixed by the fall, so the only elastic lever is lowering the coupled frequency and paying for it in stroke — which is precisely why tensegrity landers are built as long-stroke, low-frequency cages (Rimoli 2016, SUPERball).

Adding a per-drop SRS of the base channel is a pure analysis change (ISO 18431-4 / Irvine's tutorial algorithm), and was already the review doc's recommended replacement for T. Fix this →

3. The caveats that make the computed SRS a first cut, not the final lander answer

  1. Where the imaginary payload attaches. The base-channel SRS is a payload mounted on the plate. A lander payload hangs mid-structure on the tensegrity's cables — so the honest first-cut is: since the bare specimen rides the pulse (T ≈ 1), the input reaching the mid-node attachments is ≈ the base pulse, and the SRS evaluated at the coupled payload-on-tensegrity frequency approximates its peak G. Good to maybe tens of percent for a light payload; not a measurement.
  2. Mass loading. A realistic payload is not light relative to a ~tens-of-grams specimen. Hanging it drops the coupled frequency far below the bare 520 Hz — sliding leftward across the SRS from ride-through, through the amplification peak, toward isolation. Which regime you land in depends on payload mass and cable compliance, neither currently measured. (This is also the regime where the struts finally see real load — the doorway to the buckling/energy-absorbing behavior the campaign is named for.)
  3. Nonlinearity. The SRS is a linear-oscillator construct; large-stroke cable slackening or strut buckling under a heavy payload isn't in it. For the elastic screening question you asked, that's fine; for a flight-like prediction it isn't.

4. Bottom line for the lander framing

  • Computable now, free: per-drop SRS of the base channel = "peak G vs. payload suspension frequency" for every drop already on disk. It upgrades T from a near-useless peak ratio into the whole curve your question is about.
  • Measured, with hardware: the weighted key-seat / instrumented-payload experiment (upgrade path B, discussed in the previous reply) is exactly the lander experiment — a known mass at the payload location with the accelerometer on it. Transmitted peak G stops being imaginary, mass-loading and nonlinearity get captured for real, and it pairs with E_abs as the classic absorber Pareto front (absorb energy and limit payload G).
  • The bare-specimen campaign remains what it is: a repeatable dissipation screen (e_rebound, conditionally ζ). It tells you which print dissipates better; it cannot tell you what a payload would feel until one — real or computed-via-SRS — is put into the loop.

--- · Branch claude/issue-94-20260806-2349

claude Bot pushed a commit that referenced this pull request Aug 21, 2026
Task 3e398131: Edison derives its own objective set from the per-drop
campaign data before reading ours, then attacks the three legs of the
hand-off claim (t180+e_rebound objective pair, the n=8 trade-off/Pareto
framing, and the per-drop-SEM noise model that ignores the ~2% print floor).
Bundle: 23 files across three branches (per-drop metrics, series tables,
analysis doc+script, print-defect floor study, #97 energy review, BO script).
Follows the d9092c5a precedent from PR #86.

Co-authored-by: Sterling G. Baird <45469701+sgbaird@users.noreply.github.com>
claude Bot pushed a commit that referenced this pull request Aug 22, 2026
…33 #94 #97 #85 #86 #98 #101)

Pivot from planned-methods SEA/eta_c framing to the executed campaign:
drop-tower objectives t180 (filtered peak-acceleration ratio) and rebound
energy per drop, SAASBO round 1 on the printed Sobol seed batch (real
results table, real Pareto/feature-importance/LOOCV figures with labels
regenerated for naming consistency), round-2 batch in fabrication,
constant-solid-mass projection + printability screens, as-printed
fabrication record (manual painted supports, TPU dry box, high-flow
nozzle), corrected J211 filter provenance, simulation screening ladder
from PR #33 with honest scorecard, metal-analog metric switched to t180,
Edison adversarial objective review reflected in Discussion/round-3 plan.
SI rewritten: print key, drop-tower protocol/rig characterization,
printed-mass model, simulation ladder. Em-dash sweep per style guide.
Rebuilt all four PDFs.

Co-authored-by: Sterling G. Baird <45469701+sgbaird@users.noreply.github.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@me-madsen

Copy link
Copy Markdown
Collaborator

@claude, give me a report on rebound energy as used here #102 I need to know it's definition, how you are calculating it from the data we're providing, other relevant details, and provide relevant sources and literature. Try your hand at a visual teaching aid for it as well.

@claude

claude Bot commented Aug 22, 2026

Copy link
Copy Markdown

Claude finished @me-madsen's task in 9m 20s —— View job


Report on "rebound energy" as used in PR #102 — definition, calculation, caveats, sources, and a teaching figure.

Definition

"Rebound energy" in PR #102 is e_reb_mJ, objective 2 of the BO campaign (minimized, alongside t180):

e_reb_mJ = e_rebound × m_printed × g × h        [millijoules per drop]

with h = 60 in = 1.524 m, g = 9.80665 m/s², m_printed = that article's own weighed mass in grams (the scale data from #98 is what made this objective possible), and e_rebound the dimensionless rebound coefficient from the drop-tower record:

e_rebound = v_sep / Δv = g · t_second / (2 · Δv)

Physically: after the impact and ringdown, the top vertex separates from its seat and lands back t_second later. A body in free flight for time t left the ground at v_sep = g·t/2, so timing the hop measures its launch speed, and dividing by the arrival speed Δv gives a coefficient of restitution — the same time-between-bounces trick used to measure COR by ear (Bernstein, Am. J. Phys. 45:41, 1977). Multiplying that fraction by m·g·h (the article's impact energy at a 60 in drop) converts it to millijoules delivered back toward the payload side, so that a heavy print with the same rebound fraction scores worse than a light one.

How it is calculated from our data, step by step

Every step below is in committed code; links are pinned to the commits the numbers came from.

  1. t_second per drop (drop_test_abc123_blind_analysis.py:223): the top-vertex tri-axis channels (CH2-4) are decimated, band-passed 300-900 Hz around the ringdown mode, and Hilbert-transformed into an amplitude envelope. t_second is the largest envelope excursion in the 15-70 ms tail after impact — the vertex landing back. The burst's level relative to the impact (second_rel_db) is logged as a quality check, because an argmax detector always returns something.
  2. Δv per drop: the base-plate channel (CH5) integrated over 15 ms from impact (DV_TOTAL_S, line 90) — the arrest velocity, which doubles as the rig-health gauge.
  3. e_rebound per drop (line 332): g·t_second/(2·Δv). The ballistic scaling was verified, not assumed: across a 20% impact-energy change between sessions, t_second moved in proportion to Δv, so the ratio is a velocity-invariant specimen constant.
  4. Per specimen (drop_test_campaign_analysis.py): discard the 2 SOP warm-up drops and invalid captures, then report the stabilized mean and sd over ~101 drops per article into campaign_summary.csv, snapshotted as bo/t3-prism-bo-batch-drop-results.csv on PR Add T-3_01 Sobol batch print key (ID-to-spec mapping + as-printed .3mf) #102.
  5. The objective (t3_prism_bo_campaign.py:336): e_reb_mJ = e_rebound_mean × mass_g × 9.80665 × 1.524. Its noise is the per-drop SEM combined in quadrature with the print-to-print mass scatter (sd 0.457 g, measured from the spec-08 triplicate), so the model knows a single article's mass doesn't represent its design perfectly.

Worked example, bag26v (spec 08): t_second = 24.72 ms and Δv = 5.030 m/s give v_sep = 9.80665 × 0.02472 / 2 = 0.121 m/s, so e_rebound = 0.121 / 5.030 = 0.0241; times 21.42 g × g × 1.524 m = 7.7 mJ, exactly the row in PR #102's table. The batch spans e_rebound 0.020-0.050 and e_reb_mJ 6.2 (bpx68c, S0 reference) to 13.9 (6lhxfy, spec 01).

The teaching figure

Left to right: the one thing actually measured (a time), the ballistic conversion (a speed, then a fraction), and the mass-weighting that makes it the BO objective (real batch values). Panels A and B are illustrative cartoons in the style of the earlier primer figures; panel C is the measured campaign snapshot. Note in panel C how 6nheas nearly matches 6lhxfy in millijoules despite a 20% lower e_rebound, because it is 3.2 g heavier — that re-penalization of grams is the entire point of the mJ form.

Details worth knowing

  • Why it's a good objective. e_rebound was the one metric that ordered the specimens identically across all three mat arrangements in the abc123 blind test, with gaps far above noise — it survived a session change and the tower damage. It's cheap (no new hardware), velocity-normalized, and physically meaningful: lower rebound means the vertex-seat interaction dissipated more of the hop's share of the energy.
  • One wording to keep honest: it is a velocity-weighted energy index, not a measured joule count. e_rebound is a velocity ratio (COR). The kinetic-energy fraction a contact returns goes as (≈ 0.04-0.25% here — the interaction is ~99.8% dissipative; Stronge, Impact Mechanics), and the body that actually flies is the top-vertex portion of the structure, not the whole printed mass m. So e·m·g·h has units of energy and is monotone in both the restitution and the delivered impact energy — exactly what a Pareto objective needs — but "the payload receives 13.9 mJ" would over-claim. PR Add T-3_01 Sobol batch print key (ID-to-spec mapping + as-printed .3mf) #102's own Edison audit (task submitted, results not yet fetched) was asked precisely this question (item B1, "is it really a velocity ratio"), so expect a formal verdict on the naming there.
  • Design choices flagged for review in PR Add T-3_01 Sobol batch print key (ID-to-spec mapping + as-printed .3mf) #102: multiplying by mass penalizes heavy articles (a per-gram efficiency framing would reward them instead), and t180 deliberately stays a mass-free ratio. Both were called out by the author as the decisions most worth scrutiny.
  • Known failure mode: amdjwm's e_rebound sd is ~14x the batch norm (its t_second detection is flagged unreliable) and it has no spec mapping or mass, so the BO script skips it. The argmax detector plus the second_rel_db check is the guard; a drop whose hop is buried in noise gives a t_second that means little.
  • Relation to this PR's review doc: §3.7 of docs/drop-tower-energy-absorption-review.md is the underlying e_rebound treatment; e_reb_mJ is that quantity times the impact energy the mass logging from T-3_01 Prints #98 unlocked.

Sources and literature

--- · Branch claude/issue-94-20260806-2349

Co-authored-by: Marcus Madsen <265197858+me-madsen@users.noreply.github.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants