Your First Blender Hero glTF Export Hash for Q4 Diligence Mirror in One Evening - 2026
Your Resolve archive receipt is GREEN. Telemetry annex is zipped. The partner diligence email asks for one hero .glb with a checksum beside the trailer project—and your art lead says "we exported Tuesday, it should be fine." Tuesday's export used different modifier settings than today's hotfix. The mirror job copies a file partners cannot reproduce. Due diligence stalls on a 15 MB mesh, not your cap table.
Q4 2026 micro-studios mirror release-evidence/diligence/ to Shared drives while founders still treat hero exports as informal Dropbox drops. jq rclone mirror sketch owns Team Drive ID truth and nightly rclone copy; Lesson 249 owns playtest vs fest_public GLB identity on BUILD_RECEIPT—this Tutorials & Beginner-First guide closes the diligence hero mirror gap in one evening: pin export preset, export once, sha256sum GLB + manifest, rclone copy --dry-run into the diligence tree, file blender_glb_mirror_receipt_v1.json, and set blender_glb_mirror_ok beside Resolve archive before partner zip.
Non-repetition note: 7-day Fab ORM challenge owns material proof spheres; hero glTF export hash preflight owns G1–G6 playtest identity; jq mirror sketch owns M1–M6 drive ID; diligence mirror preflight (Guide) forward owns ninety-second M1–M6 gate; Lesson 271 forward owns BUILD_RECEIPT milestone. This URL is the beginner evening path between Resolve archive and partner mirror week.
Why this matters now (Q4 2026 diligence mirror week)
- Partners checksum heroes — A
.glbwithout pinned export settings is not reproducible evidence. - Resolve + 3D in one zip — Q4 telemetry analysis expects
03-art/beside02-trailer/with matchingbuild_label. - Mirror jobs multiply — Nightly
rclonecopies whatever is on disk; garbage-in equals partner confusion-out. - Playtest ≠ diligence — Lesson 249 guards live ops hero drift; this evening guards external diligence mirror rows.
- Receipt chain —
archive_handoff_ok→blender_glb_mirror_ok→mirror_job_allowedmust be ordered before live copy.
Direct answer: Pin gltf_export_preset_v1.json, export hero_diligence.glb once with frozen modifiers, write hero_glb_mirror_manifest.json, log sha256sum, run rclone copy --dry-run into release-evidence/diligence/03-art/hero/, file blender_glb_mirror_receipt_v1.json with M1–M6 pass, set blender_glb_mirror_ok: true on BUILD_RECEIPT before partner zip.
Who this is for and what you get
| Audience | You will be able to… |
|---|---|
| Beginner Blender artist | Export hero GLB + run one sha256sum |
| Solo founder | Stop "trust me it's the same file" diligence replies |
| Producer | Gate mirror week on hero checksum receipt |
| Working dev | Wire manifest, dry-run log, cousin diligence_mirror_receipt |
Time: ~90–120 minutes first evening; 20 minutes per diligence refresh after preset exists.
Prerequisites: Blender 4.x hero scene; jq mirror config M1 GREEN or equivalent diligence_mirror_config_v1.json; rclone installed locally or in CI.
What you will have after one evening
tools/blender/gltf_export_preset_v1.jsonpinned in reporelease-evidence/diligence/03-art/hero/hero_diligence.glbhero_glb_mirror_manifest.jsonwith bytes, vertex count, preset hashsha256log for GLB + manifest bundlelogs/rclone_hero_glb_mirror_dry_run_<date>.logblender_glb_mirror_receipt_v1.jsonpassing M1–M6- BUILD_RECEIPT column
blender_glb_mirror_ok
Beginner checkbox
| # | Bad habit | Fix tonight |
|---|---|---|
| 1 | Export hero ad-hoc per email | M1 preset + collection freeze |
| 2 | Hash .blend not .glb |
M2 sha256 on exported binary |
| 3 | Manifest missing vertex count | M3 manifest beside GLB |
| 4 | Live rclone copy without dry-run |
M4 log first |
| 5 | Different team_drive_id than Resolve |
M5 crosswalk cousin receipt |
| 6 | Partner zip without receipt | M6 before send |
Evening overview (four blocks)
| Block | Minutes | Output |
|---|---|---|
| A — Pin export | 20–30 | M1 preset JSON + freeze note |
| B — Export + hash | 25–35 | GLB + manifest + sha256 |
| C — Dry-run mirror | 25–35 | M4 rclone log |
| D — Receipt + BUILD_RECEIPT | 20–30 | JSON + columns |
Run after Resolve archive handoff when trailer bundle ships same week—pair Thursday row review.
Gates M1–M6
Align with diligence hero mirror preflight (Guide) when that chapter ships—this evening uses the same gate letters.
| Gate | Check | Fail when |
|---|---|---|
| M1 | Export preset + modifier freeze | Ad-hoc glTF settings per export |
| M2 | sha256 on hero_diligence.glb |
Hash missing or .blend hashed instead |
| M3 | hero_glb_mirror_manifest.json |
Manifest absent or vertex count missing |
| M4 | rclone copy --dry-run to diligence path |
Zero transfers when GLB exists |
| M5 | team_drive_id matches mirror cousin |
Drift vs diligence_mirror_receipt_v1 |
| M6 | blender_glb_mirror_receipt_v1.json |
blender_glb_mirror_ok false at zip |
Promotion rule: mirror_job_allowed on diligence mirror receipt stays false until M1–M6 pass and archive_handoff_ok true when Resolve ships same packet.
Block A — Pin export preset (M1)
Archive tools/blender/gltf_export_preset_v1.json (cousin fields from Lesson 249):
{
"format": "glb",
"export_apply": true,
"export_texcoords": true,
"export_normals": true,
"export_tangents": true,
"export_materials": "EXPORT",
"export_image_format": "AUTO",
"export_draco_mesh_compression": false,
"export_animations": true,
"export_nla_strips": true,
"export_def_bones": false
}
Freeze checklist (write in release-evidence/diligence/03-art/hero/EXPORT_FREEZE.md):
| Check | Pass |
|---|---|
hero_diligence collection is sole export root |
Yes |
| Modifiers applied consistently | Yes |
| Fab textures use proxy_2k only | Yes (8K throttle) |
Draco policy matches manifest (false for diligence) |
Yes |
Fail-closed: If Geometry Nodes change vertex count between exports, M1 fails until stack is frozen—do not "fix in engine" during diligence week.
Q4 diligence folder anatomy (beginner mental model)
Partners do not browse your entire repo—they audit a narrow tree under release-evidence/diligence/. Think of it as a filing cabinet, not a zip of Assets/:
| Folder | Typical contents | Cousin receipt |
|---|---|---|
02-trailer/ |
Resolve .drp archive, render proxies |
resolve_archive_rclone_receipt |
03-art/hero/ |
hero_diligence.glb, manifest, sha256 log |
blender_glb_mirror_receipt_v1 (this evening) |
07-observability/ |
Crash + telemetry annex | diligence_telemetry_receipt_v1 |
| Root | DILIGENCE_MIRROR_RECEIPT.json, mirror config |
jq M1–M6 |
When a fund asks "send the hero mesh," they mean 03-art/hero/ with a checksum they can verify offline—not a Dropbox link to your latest WIP .blend. Filing the receipt tonight prevents the mirror job from copying a GLB that never appears in the partner README bullet map.
Block B — Export + sha256 bundle (M2–M3)
Blender File → Export → glTF 2.0 (.glb) using pinned preset. Output:
release-evidence/diligence/03-art/hero/hero_diligence.glb
hero_glb_mirror_manifest.json:
{
"schema": "hero_glb_mirror_manifest_v1",
"character_id": "hero_combat",
"build_label": "q4-diligence-2026-rc1",
"gltf_path": "release-evidence/diligence/03-art/hero/hero_diligence.glb",
"export_preset": "tools/blender/gltf_export_preset_v1.json",
"export_preset_sha256": "sha256:REPLACE_PRESET_HASH",
"vertex_count": 18432,
"glb_bytes": 15728640,
"draco": false,
"cousin_receipts": {
"gltf_export_hash_playtest": "release-evidence/art/GLTF_EXPORT_HASH_RECEIPT.json",
"resolve_archive": "release-evidence/diligence/RESOLVE_ARCHIVE_RCLONE_RECEIPT.json"
}
}
Hash bundle:
cd release-evidence/diligence/03-art/hero
sha256sum hero_diligence.glb hero_glb_mirror_manifest.json | tee hero_glb_sha256_2026-11-04.txt
PowerShell:
Get-FileHash hero_diligence.glb, hero_glb_mirror_manifest.json -Algorithm SHA256 |
Format-Table -AutoSize | Tee-Object hero_glb_sha256_2026-11-04.txt
M2 pass when both lines logged. M3 pass when manifest vertex_count matches Blender outliner after export.
Cousin vs playtest hash (developer)
| Receipt | When | Schema |
|---|---|---|
| Lesson 249 | Live playtest / fest_public | gltf_export_hash_receipt_v1 |
| This evening | Partner diligence mirror | blender_glb_mirror_receipt_v1 |
Same preset is allowed—paths and build_label differ. Reference cousin path; do not merge JSON.
Block C — rclone dry-run (M4–M5)
DATE_TAG="$(date -u +%Y-%m-%d)"
rclone copy release-evidence/diligence/03-art/hero/ \
"diligence_team:partner_mirror/${DATE_TAG}/03-art/hero/" \
--dry-run --checksum --include "hero_diligence.glb" --include "hero_glb_mirror_manifest.json" \
-v 2>&1 | tee "logs/rclone_hero_glb_mirror_dry_run_${DATE_TAG}.log"
M4 pass when log shows planned copy for both files. M5 pass when team_drive_id in diligence_mirror_config_v1.json matches jq mirror receipt:
jq -e --arg id "$(jq -r .team_drive_id release-evidence/diligence/diligence_mirror_config_v1.json)" \
'.team_drive_id == $id' release-evidence/diligence/DILIGENCE_MIRROR_RECEIPT.json
Never paste Shared drive IDs into partner email—reference receipt path only.
CI validate step sketch (optional developer)
If hero GLB changes rarely, add a workflow_dispatch job that re-runs M2–M4 without live copy—cousin culture to Library cache bust evening:
name: diligence-hero-glb-mirror-preflight
on:
workflow_dispatch:
push:
paths:
- 'release-evidence/diligence/03-art/hero/**'
- 'tools/blender/gltf_export_preset_v1.json'
jobs:
hero-mirror-preflight:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: M2 sha256 bundle
run: |
cd release-evidence/diligence/03-art/hero
test -f hero_diligence.glb
test -f hero_glb_mirror_manifest.json
sha256sum hero_diligence.glb hero_glb_mirror_manifest.json
- name: M4 dry-run (no secrets in log)
run: |
rclone copy release-evidence/diligence/03-art/hero/ \
diligence_team:partner_mirror/ci-preflight/03-art/hero/ \
--dry-run --checksum -v 2>&1 | tee /tmp/hero_mirror_dry_run.log
- name: M6 jq gate
run: jq -e '.blender_glb_mirror_ok == true' release-evidence/diligence/BLENDER_GLB_MIRROR_RECEIPT.json
Mount diligence_team remote from secrets the same way as jq nightly mirror job—this step only proves files + receipt, not partner delivery.
Block D — blender_glb_mirror_receipt_v1.json (M6)
{
"schema": "blender_glb_mirror_receipt_v1",
"build_label": "q4-diligence-2026-rc1",
"hero_glb_path": "release-evidence/diligence/03-art/hero/hero_diligence.glb",
"manifest_path": "release-evidence/diligence/03-art/hero/hero_glb_mirror_manifest.json",
"sha256_log": "release-evidence/diligence/03-art/hero/hero_glb_sha256_2026-11-04.txt",
"export_preset": "tools/blender/gltf_export_preset_v1.json",
"dry_run_log": "logs/rclone_hero_glb_mirror_dry_run_2026-11-04.log",
"rclone_remote": "diligence_team",
"mirror_dest": "partner_mirror/2026-11-04/03-art/hero/",
"cousin_receipts": {
"diligence_mirror": "release-evidence/diligence/DILIGENCE_MIRROR_RECEIPT.json",
"resolve_archive": "release-evidence/diligence/RESOLVE_ARCHIVE_RCLONE_RECEIPT.json",
"gltf_export_hash_playtest": "release-evidence/art/GLTF_EXPORT_HASH_RECEIPT.json"
},
"gates": {
"M1_export_preset": "pass",
"M2_sha256_glb": "pass",
"M3_manifest": "pass",
"M4_dry_run": "pass",
"M5_team_drive_crosswalk": "pass",
"M6_receipt": "pass"
},
"blender_glb_mirror_ok": true,
"partner_zip_allowed": true
}
Pin under release-evidence/diligence/BLENDER_GLB_MIRROR_RECEIPT.json.
Fail-closed jq:
jq -e '.blender_glb_mirror_ok == true' release-evidence/diligence/BLENDER_GLB_MIRROR_RECEIPT.json
Sample BUILD_RECEIPT row
{
"build_label": "q4-diligence-2026-rc1",
"archive_handoff_ok": true,
"blender_glb_mirror_ok": true,
"rclone_path_ok": true,
"diligence_packet_surface": "partner_q4_2026",
"blender_glb_mirror_receipt_path": "release-evidence/diligence/BLENDER_GLB_MIRROR_RECEIPT.json"
}
Thursday row review — add line: Hero GLB mirror checksum filed Y/N.
Proof table (working dev)
| Evidence | Path | Proves |
|---|---|---|
| Preset pin | tools/blender/gltf_export_preset_v1.json |
M1 reproducibility |
| GLB binary | hero_diligence.glb |
Partner-openable mesh |
| Manifest | hero_glb_mirror_manifest.json |
Vertex + bytes truth |
| sha256 log | hero_glb_sha256_*.txt |
M2 integrity |
| Dry-run log | logs/rclone_hero_glb_mirror_dry_run_*.log |
M4 mirror plan |
| Receipt | BLENDER_GLB_MIRROR_RECEIPT.json |
M6 promotion |
Scenarios A–G
| ID | Situation | Action |
|---|---|---|
| A | First Q4 diligence week | Run full M1–M6 once |
| B | No hero in scope | Skip M2–M4; document waiver in README |
| C | Hero changed after sha256 | Re-export; bump manifest build_label |
| D | Dry-run shows 0 files | Fix path—do not live copy |
| E | Playtest hash differs | OK if paths differ—log cousin in receipt |
| F | Resolve archive missing | File archive first (Lesson 264) |
| G | Partner asks for .fbx |
Export secondary; separate manifest row—do not replace GLB receipt |
Common mistakes
- Hashing
.blend— Partners cannot open Blender-only sources in diligence portals. - Draco on diligence GLB — Document decode policy; default false for universal viewers.
- Skipping dry-run — Live copy with wrong remote wastes partner review cycles.
- Merging with
gltf_export_hash_receipt_v1— Cousin paths only (Lesson 249). - Fab 8K textures embedded — Run 8K throttle before export.
- Personal Google Drive links — Use Shared drive mirror per jq sketch.
Troubleshooting
| Symptom | Lane |
|---|---|
| sha256 changes every export | M1 modifier freeze |
| rclone auth fail | jq M2 |
| Partner GLB won't open | Draco / extensions mismatch in manifest |
| Metallic looks wrong in engine | Lesson 204 — not mirror checksum |
| Mirror OK, zip rejected | Partner upload standard |
Facilitator README snippet
## Q4 diligence hero GLB (03-art/)
1. Confirm `diligence_mirror_config_v1.json` M1 GREEN.
2. Pin `gltf_export_preset_v1.json`; freeze hero collection.
3. Export `hero_diligence.glb` + `hero_glb_mirror_manifest.json`.
4. Log sha256 bundle; run rclone dry-run to `03-art/hero/`.
5. File BLENDER_GLB_MIRROR_RECEIPT.json with M1–M6 pass.
6. Set `blender_glb_mirror_ok` on BUILD_RECEIPT before partner zip.
Partner email snippet (producer)
Keep technical proof in attachments—email references receipt paths only:
Subject: Q4 diligence packet — hero GLB checksum (build_label q4-diligence-2026-rc1)
We attached the diligence README map. Hero mesh integrity is filed under:
release-evidence/diligence/BLENDER_GLB_MIRROR_RECEIPT.json
release-evidence/diligence/03-art/hero/hero_glb_sha256_2026-11-04.txt
The GLB was exported with pinned preset tools/blender/gltf_export_preset_v1.json.
Mirror dry-run log available on request (M4). Trailer archive receipt is separate (Lesson 264 cousin).
Do not paste raw team_drive_id or service-account paths in email—partners consume the mirrored folder, not your rclone config.
Tools and sibling reads
- jq rclone mirror sketch
- Q4 telemetry diligence analysis
- Lesson 264 Resolve archive
- Lesson 249 playtest hero hash
- Blender glTF export docs
- rclone copy documentation
Key takeaways
- Diligence heroes need checksums—not "we exported last week" Slack replies.
- One evening wires preset, GLB, manifest, sha256, dry-run, receipt.
blender_glb_mirror_receipt_v1is distinct fromgltf_export_hash_receipt_v1.- M4 dry-run before any live mirror copy—zero-file logs are false greens.
- jq mirror sketch owns drive ID; this post owns hero GLB row.
- Lesson 249 guards live ops; 271 forward guards BUILD_RECEIPT milestone.
- Pin GLB under
03-art/hero/beside Resolve02-trailer/cousins. - Fail-closed jq on
blender_glb_mirror_okbefore partner zip. - Help #28 forward owns mirror path fix when dry-run fails.
- 5-night FMOD menu snapshot challenge when menu bus levels drift between playtest nights.
FAQ
Same as Lesson 249?
249 = playtest/fest live ops identity; this evening = partner diligence mirror checksum row.
Same as jq mirror sketch?
Sketch owns Team Drive ID + nightly folder; this post owns hero GLB artifact inside that folder.
Can we skip hero if 2D-only game?
Yes—document B waiver in diligence README; do not file empty receipt.
Need Guide preflight first?
Evening path is self-contained; Guide #33 is ninety-second recap when shipped.
FBX instead of GLB?
Add secondary manifest entry—keep GLB as primary for engine-agnostic partners.
Does this replace partner zip standard?
No—receipt is input to ninety-minute zip standard.
What if hero uses multiple LODs?
Export diligence LOD0 only for M2—document other LOD paths in manifest notes[] without merging hashes.
Can we reuse playtest GLB path?
Only when build_label and export freeze match—otherwise file separate hero_diligence.glb to avoid conflating live ops with external audit.
How does Thursday review use this?
Add Hero GLB mirror checksum filed Y/N beside archive_handoff_ok and rclone_path_ok—three booleans, one ten-minute pass.
Conclusion
Q4 diligence stalls when partners cannot reproduce your hero mesh. One evening: pin export, hash GLB + manifest, dry-run mirror, crosswalk Team Drive cousin, file blender_glb_mirror_receipt_v1.json—then zip.
Next reads: diligence hero mirror preflight (Guide), jq rclone mirror sketch, Lesson 249, Lesson 271 forward, Q4 telemetry analysis.
Export hero_diligence.glb tonight with a logged sha256—before the partner mirror job copies Tuesday's wrong modifiers.