An evidence-centered Unity simulation for learning humidity-responsive bio-inspired actuator design.
Play the WebGL simulation | Browse the GitHub repository
PineMorph Lab asks learners to design a passive bilayer actuator inspired by pine-cone scales. Learners control active-layer thickness, layer stiffness ratio, and fiber orientation, then connect differential hygroscopic strain to laminate curvature, moisture response time, and structural stress.
The current revision is an English-only instructional MVP for a 10-15 minute mechanical-engineering or bio-inspired design activity. It is not a certified material-selection or facade-design tool.
The simulator is designed for a desktop or laptop browser with a mouse or trackpad. Phones and tablets receive a lightweight device notice instead of downloading the Unity player.
The screenshots below come from the current production WebGL build at a verified 1600 x 900 desktop viewport.
During five Predict-Observe-Explain trials, learners:
- rotate and zoom the model, then inspect clickable biological and engineered objects;
- manipulate each design control in a required guided practice;
- predict the limiting outcome before each test;
- isolate fiber orientation, thickness, and stiffness effects;
- follow a synchronized mechanics trace from humidity to design constraints;
- compare opening angle, response time, and peak stress across trials;
- revise an unsafe final design until all three constraints are met;
- complete a Claim-Evidence-Reasoning check;
- solve a short transfer task using an unseen seed-pod design condition; and
- export anonymous trial data as CSV.
| Output | Target |
|---|---|
| Opening angle | 45-75 deg |
| Moisture response time, t95 | <= 180 s |
| Peak layer stress | <= 3.5 MPa |
These thresholds define the instructional optimization problem. They are starting values for learning design and require application-specific calibration before engineering use.
relative humidity
-> transformed hygroscopic strain
-> laminate force and moment equilibrium
-> curvature and moisture diffusion
-> angle, response time, and stress constraints
The 3D bilayer mesh, trace, metric dashboard, and cumulative graph all use the same PineMorphResult produced by the analytical model.
The graph is a normalized constraint map. Teal, amber, and coral encode opening angle, response time, and peak stress, while persistent horizontal rules show the instructional limits. Trial reruns replace the current record so a learner cannot accidentally duplicate evidence.
| Input | Action |
|---|---|
| Active Layer Fraction | Changes laminate geometry and diffusion distance |
| Stiffness Ratio Ea/Ep | Redistributes force, moment, curvature, and stress |
| Fiber Angle | Transforms hygroscopic expansion along the hinge axis |
| Drag in 3D viewport | Rotate the model |
| Mouse wheel | Zoom |
| Click a layer or pine cone | Highlight the object and reveal its mechanical role |
R |
Reset the camera |
All sliders remain adjustable during every trial. Changing a design after selecting a prediction clears that prediction so the tested design and recorded prediction cannot become mismatched.
The session score combines normalized prediction accuracy (20 points), Trial 5 optimization and revision (25), Claim-Evidence-Reasoning (45), and an unseen seed-pod transfer task (10). Prediction accuracy uses correct predictions divided by completed prediction opportunities, so partial sessions are not penalized for opportunities that were never reached.
Five raw trial opportunities are retained for the learning sequence. Cross-app comparison uses normalized opportunity progress instead of comparing PineMorph's five trials directly with GeckoGrip's four. Anonymous JSONL events are mirrored to WebGL as pinemorph-learning-event browser events and postMessage payloads. See the common learning-event schema.
- Unity
6000.4.9f1 13/13EditMode analytical physics and competency tests- automated PlayMode verification of required rotate, zoom, object-selection, and slider practice
- automated prediction, run, result, and navigation QA
- PlayMode verification that rerunning a trial replaces, rather than duplicates, its record
- runtime-generated 3D bilayer and English UGUI interface
- deterministic orbit verification with distinct before/after visual evidence
- anonymous JSONL/WebGL learning events
- WebGL-compatible CSV download bridge
- Chromium WebGL workflow QA at
1600 x 900 - consistent phone and
1024 x 768tablet guard verification
- Add this directory in Unity Hub.
- Open with Unity
6000.4.9f1. - Load
Assets/PineMorphLab/Scenes/PineMorphLab.unity. - Enter Play Mode.
Use Tools > PineMorph Lab > Build Windows or Tools > PineMorph Lab > Build WebGL for players.
PineMorph now includes an editable Blender source pack and runtime FBX set for the humidity stage, precision clamps, tapered curved pine-cone scales with dense overlap and natural material variation, bilayer coupon, and tissue cross-section. The live PineMorphRibbon still deforms from analytical model output; the imported assets provide laboratory context and biological detail without replacing the mechanics.
| Asset group | Runtime role |
|---|---|
| Humidity stage and clamps | Boundary conditions, sensing, and moisture-test context |
| Pine cone reference | Clickable biological mechanism |
| Bilayer coupon | Active/passive layer and fiber scaffold |
| Scale cross-section | Tissue anisotropy and pore structure |
| HUD renders | Visual scaffolds beside thickness, stiffness, and fiber controls |
Rebuild the pack with python Tools/build_pinemorph_assets.py and verify it with python Tools/verify_pinemorph_assets.py. See the asset upgrade audit for the gap list, integration contract, and fresh browser-validation record.
The present model assumes a slender, perfectly bonded, linear-elastic bilayer, uniform humidity through each layer at equilibrium, constant material properties, and first-mode through-thickness diffusion. Physical calibration should measure hygroexpansion, orthotropic stiffness, diffusivity, interface behavior, hysteresis, and cyclic fatigue for the intended material system.


