FREEcommercial use · no sign-up

Tram

A low-poly two-section low-floor city tram in brick red and cream, with raked cabs at both ends, paired green sliding doors, a dark articulation bellows and a single-arm pantograph. It comes with a seamless 8 s tram-stop loop: the doors slide open and shut, the wipers sweep and the pantograph flexes to follow the wire.

Tram 3D model
This model carries a baked animation clip.

Left rail: colours and the 4 knobs the agent wrote into this model — they rebuild the geometry and go into your download. Right rail: looks for the viewer. Drag to orbit, scroll to zoom.

Triangles
2,608
Vertices
7,824
Meshes · materials
71 · 71
Size (W × H × D)
2.5 m × 4.8 m × 20 m
File
GLB · 316 KB
Animation
scene-motion · 8.0s
Collection
Bicycle City

Palette · named materials

  • brick red lanes — lower body panels (body)#c32222
  • cream — upper body panels (body)#f1e7d0
  • brick red lanes dark — skirt, bumpers, axle boxes (trim)#821717
  • canal green — waist stripe at bikeColours 0.25–0.75 (accent)#3a883a
  • canal green dark — door leaves up to bikeColours 0.75 (accent)#235223
  • warm white — roof shell, headlights, destination panel (light)#f2ede2
  • soot black — windows, door openings, bellows, pantograph base and head, bogie frames (glass)#1b1b22
  • mid grey — roof equipment pods, pantograph arms, wheelsets, couplers, wipers (earth)#7d828c
  • dark wood — door thresholds (floor)#3d2a1c
  • bright bike colours — waist stripe below bikeColours 0.25 (accent)#b39d80
  • canal green light — waist stripe above bikeColours 0.75 (accent)#5db15d

Use it

import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";

const gltf = await new GLTFLoader().loadAsync(
  "https://assets.stoicsoft.com/1designtool/3d/models/bicycle-city-tram/60055dbf55/model.glb"
);
scene.add(gltf.scene); // metres, +Y up, front faces +Z

const mixer = new THREE.AnimationMixer(gltf.scene);
gltf.animations.forEach((clip) => mixer.clipAction(clip).play());
// in your loop: mixer.update(delta)

How it was made

The brief given to 1DesignTool's “3D object” template:

Tram for the Bicycle City kit. Design it as one clear asset at believable real-world scale for that setting (state the size in metres in meta.notes), with its main parts modelled and named, readable at thumbnail size and from every orbit angle. It moves: author a seamless baked loop (2–12 s) with every pivot exactly at its hinge, axle or swivel, and keep the base still. This is one part of the Bicycle City kit (Low-poly style, flat-lowpoly direction): Streets made for bikes. Use ONLY the kit palette, by name: brick red lanes #c32222, canal green #3a883a, bright bike colours #b39d80, cream #f1e7d0, brick red lanes dark #821717, canal green dark #235223, brick red lanes light #db5757, canal green light #5db15d, soot black #1b1b22, warm white #f2ede2, mid grey #7d828c, dark wood #3d2a1c. Every material's `name` must be exactly the palette colour it uses — the GLB carries these names so the kit recolours as one; an unnamed material fails delivery. Kit knob: expose a param `bikeColours` (0–1, default 0.5) for the kit's "Bike colours" setting wherever it makes sense on this part, and keep that id.
  • Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
  • Direction: Low-poly · family vehicles
  • three-check PASS · glb-lint PASS
Make your own with 1DesignTool →

Named parts · 34

  • Tram
  • Body sections
  • Roof and equipment pods
  • Articulation bellows
  • Windows
  • Waist stripe
  • Doorways
  • Door R1 rear leaf
  • Door R1 front leaf
  • Door R2 rear leaf
  • Door R2 front leaf
  • Door R3 rear leaf
  • Door R3 front leaf
  • Door R4 rear leaf
  • Door R4 front leaf
  • Door L1 rear leaf
  • Door L1 front leaf
  • Door L2 rear leaf
  • Door L2 front leaf
  • Door L3 rear leaf
  • Door L3 front leaf
  • Door L4 rear leaf
  • Door L4 front leaf
  • Front cab
  • Rear cab
  • Front cab wiper
  • Rear cab wiper
  • Pantograph base
  • Pantograph lower arm
  • Pantograph upper arm
  • Pantograph head
  • Front bogie
  • Articulation bogie
  • Rear bogie

Note: Size: 20.3 m long over the couplers (20.0 m body in two articulated sections), 2.4 m wide and 3.12 m to the roof crown; the raised pantograph head reaches about 4.8 m. The low floor and door sills are at 0.40 m for kerb-height stops. Wheels are 0.6 m across on a 1.435 m gauge, on three bogies (one under each end, one under the articulation). The origin is at the bottom centre, every wheel rests on y = 0 and the front cab faces +Z; the tram is double-ended, with an identical cab facing -Z. No track or overhead wire is included. The GLB has 2,608 triangles in 71 meshes. Every material is named exactly after its Bicycle City palette colour; 9 of the 12 kit colours appear at the defaults (bright bike colours, canal green light and brick red lanes light are not used at 0.5). The exporter writes one material per mesh, so the same colour name appears on several materials: recolour by name. Warm white is mildly emissive so lamps and the blank destination panel look lit. The baked clip scene-motion (8 s, seamless) is a tram stop: each door leaf slides along the side from its closed position (pivot at the leaf's meeting edge on the sill), closed 0–1 s, opening 1–2.2 s, open to 5.4 s, closing to 6.6 s; both wipers turn on their spindles and make two sweeps; the pantograph lower arm turns about its roof hinge (30° ± 2.5°), the upper arm about the knee and the head about the arm tip so the bow stays level above the base. The body, cabs and bogies never move, and the wheels do not turn (the tram is standing at a stop). The export snapshots a mid-loop frame, so the glTF's static node pose is a frame from the clip; seek the clip to 0 for the closed rest pose. Params are baked into the GLB at their defaults and only change the model when the scene is rebuilt in the viewer: bikeColours (the kit's 'Bike colours') picks the waist stripe (bright bike colours below 0.25, canal green to 0.75, canal green light above) and lightens the doors to canal green above 0.75; tramLength sets the body length; doorsPerSection gives 1 or 2 double doorways per section and side; doorOpen scales the door travel in the loop. Only the default build was rendered and checked. glb-lint: 0 errors and 6 heuristic warnings (per-mesh duplicate materials, deliberate non-indexed flat shading, nested panels such as the display bezel, 'detached' meshes that sit on the body in other part groups, and height against the direction's 1 m reference); the verdict reads UNVERIFIED only because no requirements contract was supplied. plan-check passes on a de-hyphenated copy; its part-id regex only rejects the hyphens in the slug-based ids this library requires, and three-check keeps all 34 ids through the GLB reload. Three fix rounds: two for hero framing and one for a z-fight between the pantograph base and its roof pod.

About the Tram 3D model

Tram is a free animated low-poly 3D model from the Bicycle City set. It measures 2.5 m × 4.8 m × 20 m (W × H × D) at real-world scale and is built from 2,608 triangles across 71 meshes, with 34 named parts and a baked animation (8.0 s). Download the 316 KB GLB and drop it into three.js, React Three Fiber, Godot or Blender — free for commercial use, no attribution required.

Is the Tram 3D model free for commercial use?
Yes. It is free under the 1DesignTool 3D library license: use it in personal and commercial work — games, apps, websites, renders, ads and client projects — and modify it as you like, with no credit required. What you can't do is re-sell or re-distribute the file on its own or inside a model pack.
What file format is it, and how big is it?
A single binary glTF 2.0 file (.glb), 316 KB: 2,608 triangles, 7,824 vertices and 71 materials, modelled in metres at 2.5 m × 4.8 m × 20 m.
Is Tram animated?
Yes — the GLB carries a baked animation (8.0 s), ready to play with any glTF animation mixer.
Which engines and tools can open it?
Anything that reads glTF 2.0. three.js, React Three Fiber, Babylon.js, Godot 4 and Blender import the GLB directly; Unity and Unreal Engine load it through their glTF importers. The snippets above show the exact code for three.js, React Three Fiber, Godot and Blender.
How was the Tram 3D model made?
Claude Code (Claude Opus 5.5) generated it inside 1DesignTool's 3D template from a written brief, then the design kit's checks verified the geometry and the GLB before it was published. You can make your own the same way with 1DesignTool.

Free under the 1DesignTool 3D library license. Model #6 of 1865.