GIGI SHAPE x LAYER IMPACT EXPERIMENT - STAGE 4 - 2026-10-25

Purpose and evidence boundary
This experiment compares three original overall shapes and three layered
structures in an assumed mechanical model. It is a numerical screen, not a
helmet safety rating, concussion model, certification or manufacturing release.
All reported acceleration and angular-speed values are unfiltered FE outputs.
No claim of a safer player-use helmet follows from these computations alone.

Predeclared experiment
See research/helmet_20261025/stage4/plan.json, written before the full sweep.
Shapes: head-following oval; spherical shell-reference cap; zoned oval.
Structures: QI_B, BAL_B, BAL_AC (definitions below).
Impacts: crown, front, side, rear, oblique. There are 45 main cases.
Normal speed: 3 m/s. Oblique adds 3 m/s in the X tangential direction.
Wall friction: 0.2 assumed. Initial end time: 6 ms; unfinished contacts are
continued to 12 ms and, if needed, 24 ms, with all histories retained.
The frontal case loads the shell rim; there is no facemask model.

Controls and shape construction
All shapes share the synthetic head-contact surface and covered head region.
The reference oval has a 40 mm normal-offset liner. Spherical geometry is
formed by intersecting the same outward head-normal rays with a sphere whose
radius is solved to match foam volume. The zoned oval uses smooth thickness
modulation toward crown and lateral regions, with a constant offset solved to
match foam volume. No shape is labeled optimal before the experiments.
Target shell mass is matched by inversely adjusting global ply thickness with
shell area. Target foam mass is matched as described below. This retains
mass and inner coverage, not identical outer contact area or local cushioning
stroke. Solver-measured total mass differences are reported explicitly.
Across mesh resolutions, geometric discretization and mass integration change
slightly; these are mesh-sensitivity checks on the same nominal construction.

Layer structures (outside-to-inside shell, inside-to-outside foam)
QI_B: 16 plies; half-stack [0,45,-45,90,0,45,-45,90], mirrored; uniform B foam.
BAL_B: half-stack [-45,45,0,90,90,45,0,-45], mirrored; uniform B foam.
BAL_AC: same shell as BAL_B; soft A inner foam and firm C outer foam.
A density 97.5 kg/m^3 and C density 183 kg/m^3. A occupies 67.836% of foam
volume and C the rest, matching the mass of uniform 125 kg/m^3 B foam.
The radial interface is solved by integrated volume, not a fixed thickness
fraction. Two elements span each material region, four through the whole liner.
QI_B versus BAL_B isolates shell ply order at equal angle counts and thickness.
BAL_B versus BAL_AC tests a combined material-and-depth-placement change.
It does not separately establish that A-inside is better than C-inside.

Material axes and constitutive assumptions
0 degrees is the projected front-to-back axis in each shell element tangent
plane. A vertical-axis chart is used near singular X projection and flagged.
These are material directions, not manufacturable continuous tow trajectories.
Shell: nominal orthotropic elastic constants adopted from PMC10450760 Table 3;
no damage or delamination. Foam: energy-matched loading anchors from Bailly et
al. (2020), DOI 10.3390/app10228286, Table 1. Unloading, tension and high-strain
continuation are assumptions. No strain-rate dependence is modeled. Continuation
above each material's published compression limit is numerical only; cases
entering that region are withheld. A sampled compression check does not validate
multiaxial constitutive behavior or all intervening solver steps.

Headform and interfaces
The 5 kg nominal rigid cap has synthetic inertia; it is not an approved test
headform. Shared foam nodes contribute some mass to the effective rigid body.
The head-reference point is the nominal cap's area-weighted CG fixed in that
body, excluding attached foam nodal mass. Shell/foam/head connections are bonded.
No neck, brain, facemask, retention system, slip/debonding, shell failure or
repeated-impact damage is included.

Measured outputs
Eight tracked rigid-cap nodes provide displacement, velocity and acceleration
histories at 25 microsecond intervals. A rigid-motion fit recovers translation,
angular velocity and angular acceleration, including centripetal acceleration.
The response at the specified body-fixed head-reference point is reconstructed.
This algorithm was checked with planted rigid translation, rotation and angular
acceleration, and a test removing rotation fails the planted answer.
Additional metrics: global mass/energy, hourglass fraction, added mass, net
external force from total momentum changes, and sampled foam deformation.
External force is not substituted for head acceleration.

Numerical gates and controls
Energy balance residual <=5% of initial kinetic energy; hourglass fraction <=5%;
added mass <=1e-8 kg; rigid velocity-fit residual <=0.001 m/s; final contact-force
ratio <=1% over the last ten output intervals; positive sampled deformation
Jacobians; sampled principal compression below material-specific domain limits.
Every foam element is checked at eight Gauss locations on every 0.25 ms frame.
Actual errors are reported, not merely pass/fail thresholds.
A no-wall freeflight control has negligible deformation and acceleration.
A frictionless oblique control preserves tangential momentum; adding friction
changes it. Restart continuation was checked on the planted freeflight case.
Prior analytical solid, 0/45/90 laminate and element-BETA checks are retained.
Starter warnings that round/raise foam initial modulus and switch rigid shell
integration are retained in the raw listings, not silently discarded.

Comparison and refinement
For each eligible design, take the maximum of each of three metrics across all
five impacts: linear head-reference acceleration, angular acceleration and
angular speed. Divide each by the corresponding worst baseline oval_QI_B metric.
The score is the largest of these three ratios. This is an analyst-selected
minimax screening objective with equal relative weights, not an injury model.
Only five-case, numerically passing designs enter that ranking.
The controlling baseline oblique impact is repeated for all nine designs at a
32 x 10 surface mesh (versus 24 x 8 initially), with four foam elements through
thickness. The best eligible alternative and baseline receive 40 x 12 checks
for their union of controlling impact directions, plus oblique friction 0 and
0.4 sensitivity runs. Those friction values are assumed bounds, not measured
uncertainty intervals. Check refinement_summary.json for observed stability;
do not infer convergence from a pass of unrelated numerical gates.

Units and files
Solver: metres, kilograms, seconds, pascals. Mesh CAD: millimetres.
models/<shape_structure>/shell_mm.stl and liner_mm.stl are watertight solid
exports; graded variants also include separate inner_A_mm.stl and outer_C_mm.stl.
The exact shell-reference OBJ and FE mesh are supplied. Offset STL shell skins
are mesh representations, not production tooling surfaces or fabrication tolerances.
index.html is the Davis Geometric companion site; comparison.html is its
detailed interactive comparison and history viewer. The site uses the current
math-website-main research stylesheet (checkout HEAD 52e75dc, 20 October 2026).
all_cases.csv and summary.json contain the measured screen and paired effects.
The PDF contains model sections, comparison tables and numerical limitations.
The presentation/ folder contains two polished AI-generated concept images and
their exact prompts. These are illustrative; their hardware, vents and cosmetic
geometry are not part of the numerical model. See presentation/README.txt.
The viewer's three-dimensional material-axis views come from the actual mesh.
The companion includes synchronized measured impact animations for the medium
mesh oval/QI_B and oval/BAL_B oblique cases. Only the ply order changes in this
pair. Twenty-five frames per case contain actual deformed coordinates, maximum
upper/lower shell equivalent stress, and sampled through-liner principal
compression. Both cases use the same color limits over the whole history.
Shell equivalent stress is a visualization invariant, not ply-specific stress
or an orthotropic failure criterion. Fiber marks are transported local material
axes, not continuous manufacturing paths. Compression is measured relative to
the initial saved geometry. Source-frame hashes and extraction checks are kept.
Serve the companion over HTTP so the animation can load its recorded JSON:
python -m http.server 8790 --bind 127.0.0.1 --directory output/helmet/stage4
Then open http://127.0.0.1:8790/. No external animation libraries are required.
final_screen_results.json in the research folder includes continuation histories;
screen_results.json and progress.json preserve the original first-pass records
and can contain a contact-not-finished status later resolved by continuation.

GIGI's role
OpenCourant computes the physics. GIGI stores/query-checks design specifications,
mesh curvature estimates and measured solver summaries. Physical curvature here
is a surface-shape-operator estimate in 1/m; it is not GIGI's statistical
CURVATURE verb. Fit residuals, boundary flags and ambiguous principal directions
are retained. Input geometry is synthetic, not a physical measurement.
Bundles: helmet_stage4_designs_20261025; helmet_stage4_curvature_20261025;
helmet_stage4_runs_20261025; helmet_stage4_checks_20261025.
Raw API receipts document live readbacks. No unrelated bundle is deleted.

Solver and reproduction
OpenCourant Windows release latest-20261011, official download:
https://github.com/OpenCourant/OpenCourant/releases/download/latest-20261011/OpenCourant_win64.zip
SHA256: 6d0ea8b43b68aa12f0a2787b339384a554978cbb65a5d3dbaf1e40598f02e7e6
Place the extracted OpenCourant folder at
research/helmet_20261025/stage3/vendor/OpenCourant.
The distribution is already installed in the working project and is not copied
into the delivery ZIP. Preserve the official distribution's licenses/notices.
The keyword input is LS-DYNA-compatible; the actual solver is OpenCourant.
Python dependencies: numpy; reportlab for the report. GIGI loading additionally
requires the existing local project and its research service at 127.0.0.1:3147.
Portable model generation, solver execution and measurement do not need GIGI.
Use run_design.py --help to create and run a fresh named case without reusing
old solver artifacts. Example, from the extracted package root:
python research/helmet_20261025/stage4/run_design.py --name replay_oval --shape oval --structure BAL_B --impact oblique
This creates a new case folder, runs the actual solver, measures it, and extends
unfinished contact if admissible. It refuses an existing case name to prevent
accidental mixing of old and new outputs. Numerical results depend on solver
version, mesh, output sampling and assumptions; all are recorded.

Transport package
Includes all case decks, run manifests, continuation inputs, logs/listings,
CSV/JSON histories, binary time histories, model meshes, analytical check evidence,
source code, tables and GIGI receipts. Large restart checkpoints and animation
binaries remain in the working research directory and are omitted from the ZIP;
the two animations' derived browser-ready frames ARE included in assets/.
they can be regenerated from the supplied inputs. This is disclosed so the
transport package is not mistaken for a checkpoint archive.

Required before a protection claim
Calibrate rate-dependent material loading/unloading and damage, validate a
head/neck/contact/retention assembly against physical impacts, establish mesh
and time/output convergence, test broader speeds/angles and repeated impacts,
and perform applicable physical helmet evaluations. This experiment supplies
comparative hypotheses and reproducible computational evidence, not that validation.
