Skip to content

Lab: Export GLB and Import to Twin

Companion videos

Watch on YouTube (opens in a new tab)

Videos by Asst. Prof. Dr. Santi Nuratch, Department of Control Systems and Instrumentation Engineering, Faculty of Engineering, King Mongkut's University of Technology Thonburi (KMUTT) · The whole series in the playlist AIoT Foundation

Course 3 · Module 4 Type: Hands-on (prepare · export · import · mark points · test) Suggested time: ~2.5–3 hours

Read first: Lesson · Export checklist · ← TOC · ← M03 · M05 →

Document Why
glTF 2.0 exporter export options
glTF Animations stash / names
Bitstream Studio Twin host
Hackathon web-app optional ex05 / ex06

  • Produce a .glb file from the M02/M03 model
  • Import it into Bitstream Studio with a usable size/axis orientation
  • Mark at least 1 named sensor or interaction point
  • Test at minimum: placing the model + (an animation clip or telemetry)
  • Fill in export-twin-checklist.md

  • A file from M03 (or M02, if there is no clip yet — note this in the checklist)
  • Bitstream Studio ready to use
  • Copy the work to m04_enclosure_twin.blend before exporting

  1. Apply Scale on the parts you will send
  2. Check the object names and clip names (lid_open, etc.)
  3. If there are several Actions: stash them into the NLA per the glTF guide
  4. Hide/delete cutters and anything you don’t want to send
  5. Save the .blend

Pass when: playback in Blender is still correct, and Scale reads 1,1,1


  1. File → Export → glTF 2.0
  2. Choose glTF Binary (.glb)
  3. Turn on Apply Modifiers · Materials · Animations (if any)
  4. Export as enclosure_twin.glb
  5. Record the export options used in the checklist

Pass when: a .glb file exists and is not 0 bytes


Lab C — Import into Twin host (required)

Section titled “Lab C — Import into Twin host (required)”
  1. Open Bitstream Studio
  2. Import enclosure_twin.glb per that version’s UI
  3. Check: it is visible · the scale works · the orientation lets it sit on the floor
  4. If there is a clip — play lid_open (or whatever name was exported)
  5. Take a screenshot

Pass when: a screenshot shows the model in the host, and the checklist has Import OK ticked


Lab D — Mark sensor / interaction point (required)

Section titled “Lab D — Mark sensor / interaction point (required)”
  1. Choose at least 1 point (for example sensor_bmi270_slot or interact_lid)
  2. Record: the name · where it is on the box · what it is tied to (a sensor / a clip / an LED)
  3. Add a screenshot or sketch in the checklist

Pass when: someone else on the team reads the name and correctly points to the spot on the model


Section titled “Lab E — Data or motion test (recommended — part of the complete deliverable)”

Choose at least one:

Option What to do
E1 — Clip Play the animation in the Twin through a full open cycle (and close, if any)
E2 — Telemetry Link a Simulator or a Board so there is a data stream while the model is on screen
E3 — Web-app Open Hackathon ex05 or ex06 alongside the Twin and capture both

Pass when: there is image/clip evidence in the deliverables folder


  • Compare scale with a GLB from ternion-3d-assets-free
  • Re-import the .glb back into Blender to confirm the clip is not lost
  • Reduce poly count and export a second time, comparing file sizes

  • enclosure_twin.glb (+ the source .blend)
  • A screenshot from Bitstream Studio
  • ≥ 1 sensor/interaction point
  • The Lab E test result
  • export-twin-checklist.md filled in completely

Symptom What to try
The model is gigantic or tiny in the Twin Check the team’s Unit Scale · Apply Scale · export again — don’t just zoom to compensate and call it done
No animation in the GLB Stash the Action · turn on Animations during export · check the clip name
Materials look black/missing Use Principled · check Materials is on during export · check the lighting in the Twin
A Boolean looks wrong after export Turn on Apply Modifiers
Import fails to show anything Check the .glb extension · try a sample model from the free assets to tell whether the file or the host is the problem
Telemetry seems unrelated to the model They’re different pipes — the model is the picture; use ex05/ex06 as the data evidence

Lesson · Export checklist · TOC · M05 →

Cite this lesson

If you teach from this lesson or reuse it in slides or documents, credit it with the text below. If you changed it, add (adapted) after the title.

"Lab: Export GLB and Import to Twin" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0

Thai attribution: "แล็บ: ส่งออก GLB และนำเข้า Twin" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0

Lesson link: https://tesaiot.github.io/tesa-qualification-program/en/courses/product-design/m04-blender-to-twin/l02-lab/

This lesson adapts the source below; keep its credit too.
https://github.com/drsanti/TESAIoT-Courses/blob/287c21814ba8c75f693136616dcd270349a15966/C3/M04/lab.md · Original content by Asst. Prof. Dr. Santi Nuratch (ผศ.ดร.สันติ นุราช), KMUTT. Course 3 (C3/) of drsanti/TESAIoT-Courses. TESA funded the work and holds the rights; published here under CC BY-NC 4.0. The upstream repository carries no licence file. Text kept faithful; structure, front matter, quizzes and notes added by TESA Open Knowledge.

Full guide: how to cite TESA

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

Content is licensed CC BY-NC 4.0. Reuse it non-commercially and credit the Thai Embedded Systems Association (TESA) every time. · How to cite TESA