Our lifetime deal increases from $97 to $127 in03 days19 hours05 min01 secGet access for just $97 NOW
Formats & optimization

Scale, orientation & pivots

Place pack models using their documented metric-height, orientation, pivot, and grid conventions while accounting for pack-specific exceptions.

AP
Aron Prins
Founder · Updated Aug 11, 2026 · 3 min read
On this page (7)

Environment packs share useful placement conventions, but they do not guarantee identical real-world proportions. Treat the downloaded README and the actual GLB as the authority whenever exact alignment matters.

Units and proportions#

The common convention is 1 three.js unit = 1 metre for heights. Horizontal footprints may be compressed or widened to fit a stylized scene grid. This means a door or storey can read at a familiar height while a building or vehicle is shorter in plan than its full-size real-world equivalent.

Vertical dimensions carry an exception of their own. Some packs also stylize height for architecture and landmarks so a tower or facade reads well in a diorama instead of dwarfing the block — a README may declare buildings at around 70% of real height, or a landmark authored compact rather than to literal scale. Others compress the footprint only and keep heights metric. So when you size a doorway, a camera limit, or a character's clearance, measure the exported geometry and treat it as the authority; do not assume a literal metre from stylized architecture.

Do not assume that combining two packs automatically produces perfect relative scale. Place representative assets together and validate the result before building physics, navigation, or camera limits around them.

Orientation#

Environment assets target:

PropertyCommon convention
Up axis+Y
Forward direction+Z for directional assets
Ground surfaceAround y = 0 for grounded individual props

Imported authoring files, configurators, and declared pack exceptions can differ. Test a vehicle, sign, and building rather than inferring direction from the filename.

Pivots#

Buildings and props commonly use a bottom-centre pivot so they can be placed on a ground plane at y = 0. Some vehicle packs use a rear-axle ground pivot, which is useful for steering. Configurator models may use a centred origin for turntable controls.

Those are pack conventions, not a guarantee for every GLB. Check the README or measure the model before relying on a pivot in reusable placement code.

Measure a loaded model#

Use a bounding box to verify size and ground offset:

measure-model.ts
const bounds = new THREE.Box3().setFromObject(gltf.scene)
const size = bounds.getSize(new THREE.Vector3())
const centre = bounds.getCenter(new THREE.Vector3())

console.log({ minY: bounds.min.y, size, centre })

If minY is not the expected ground surface, apply a local offset in your wrapper rather than modifying every placement in the scene.

Grid and tile systems#

Applicable exterior packs commonly use a 4-unit module for roads or terrain. Surface heights, road widths, connection rules, and prebuild footprints remain pack-specific. Use the dimensions in that pack's README; do not copy offsets from another pack.

Mixing packs safely#

  1. Place one building, vehicle, prop, and tile from each pack in a test scene.
  2. Compare heights, footprints, forward directions, and ground contact.
  3. Record any scale or offset in one wrapper component per pack.
  4. Test navigation, collisions, and camera framing with those corrections applied.
Still stuck?

Ask us directly — we answer support mail ourselves.

Contact support
Share
Scale, orientation & pivots — threejsassets.com