FREEcommercial use · no sign-up

Ticket feed

A low-poly arcade ticket dispenser: a black wedge housing with neon side cheeks, a cyan counter screen and a marquee bar. A hot-pink fan-fold ticket strip feeds out between two rollers and folds down into a catch tray, as a seamless 4-second loop.

Ticket feed 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
600
Vertices
1,180
Meshes · materials
40 · 40
Size (W × H × D)
28 cm × 32 cm × 31 cm
File
GLB · 149 KB
Animation
scene-motion · 4.0s
Collection
Arcade

Palette · named materials

  • body: housing (black)#151619
  • base: plinth (soot black)#1b1b22
  • trim: nozzle, accent stripe, button ring, tray lip (neon purple)#9123c7
  • cheek: side cheeks at default era (neon purple dark)#611886
  • tray: catch tray walls and screen bezel (black light)#3a3c40
  • screen: counter screen (cyan, faint emissive)#20c6df
  • glow: marquee light bar (neon purple light, faint emissive)#b15bdc
  • mouth: nozzle mouth plate and roller axles (black dark)#090a0b
  • roller: pinch roller drums (mid grey)#7d828c
  • accent: tickets, ticket pile, button cap (hot pink)#f589ad

Use it

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

const gltf = await new GLTFLoader().loadAsync(
  "https://assets.stoicsoft.com/1designtool/3d/models/arcade-ticket-feed/ae46ab24c7/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:

Ticket feed for the Arcade 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 Arcade kit (Low-poly style, flat-lowpoly direction): Screens glowing in a dark room. Use ONLY the kit palette, by name: black #151619, neon purple #9123c7, cyan #20c6df, hot pink #f589ad, black dark #090a0b, neon purple dark #611886, black light #3a3c40, neon purple light #b15bdc, 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 `era` (0–1, default 0.5) for the kit's "Era" setting wherever it makes sense on this part, and keep that id.
  • Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
  • Generation: 4.55M tokens (95% cached) · ≈ $3.20 at API prices · 5-hour plan +10%, weekly plan +2%
  • Direction: Low-poly · family abstract-kinetic
  • three-check PASS · glb-lint PASS
Make your own with 1DesignTool →

Named parts · 25

  • Ticket feed
  • Base
  • Housing
  • Side cheeks
  • Counter screen
  • Marquee light bar
  • Feed nozzle
  • Upper roller
  • Lower roller
  • Feed button
  • Catch tray
  • Ticket pile
  • Ticket strip
  • Ticket 1
  • Ticket 2
  • Ticket 3
  • Ticket 4
  • Ticket 5
  • Ticket 6
  • Ticket 7
  • Ticket 8
  • Ticket 9
  • Ticket 10
  • Ticket 11
  • Ticket 12

Note: Size: a counter-top ticket dispenser 0.28 m wide (X), 0.31 m deep (Z) and 0.32 m tall to the top of the marquee bar. The housing is 0.30 m tall on a 0.03 m plinth. The origin is at the bottom centre with the plinth resting on y = 0, and the front (nozzle, screen, tray) faces +Z. The exported model has 600 triangles in 40 meshes. Animation: one 4 s seamless clip, 'scene-motion'. It has rigid transform tracks only, on the two rollers and the 12 ticket links. The strip advances exactly two ticket lengths per loop, and each roller turns whole revolutions about its own axle, which is the roller node's origin. The base, housing and tray are never keyed. Ticket links ride a fixed path: they enter hidden inside the housing and leave hidden under the ticket pile, so the loop reads as a continuous feed. Every material is named exactly after an Arcade kit palette colour. 10 of the 12 are used at the default era (warm white is unused, and dark wood appears only at low era). The exporter writes one material per mesh, so the same colour name appears on several materials: recolour by name. Params are baked into the GLB at their defaults and only change the model when the scene is rebuilt in the viewer. era (the kit's 'Era' setting) widens the counter screen from 8 cm to 17 cm and switches the side cheeks from dark wood (below 0.34) to neon purple dark to black light (0.67 and above). bodyHeight raises the housing and the nozzle, which lengthens the hanging strip. ticketLength sets the ticket pitch. feedTickets sets how many tickets feed per loop and only affects motion. three-check passed at both extremes (era 0, 0.26 m, 0.06 m tickets, 3 per loop; era 1, 0.36 m, 0.045 m tickets, 1 per loop). Lighting override: viewer exposure 0.8 instead of the direction's 1.05, so the neon colours don't wash out. This affects only the viewer, not the GLB. glb-lint: 0 errors and 5 warnings. Two are about material count and duplicates, both caused by the per-mesh materials. One flags sibling overlaps where the screen glass sits in its bezel and the axles sit in the roller drums, both deliberate. One flags parts that only touch neighbours in other groups, such as the cheeks, stripe and nozzle seated on the housing. One flags scale against the direction's 1 m reference; this prop is a deliberate 0.32 m. Its verdict reads UNVERIFIED only because no host requirements contract was supplied. plan-check passes except for its part-id regex, which rejects the hyphens in the slug-based ids this library requires. three-check accepts those ids, and all 13 planned ids survive the GLB reload.

About the Ticket feed 3D model

Ticket feed is a free animated low-poly 3D model from the Arcade set. It measures 28 cm × 32 cm × 31 cm (W × H × D) at real-world scale and is built from 600 triangles across 40 meshes, with 25 named parts and a baked animation (4.0 s). Download the 149 KB GLB and drop it into three.js, React Three Fiber, Godot or Blender — free for commercial use, no attribution required.

Is the Ticket feed 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), 149 KB: 600 triangles, 1,180 vertices and 40 materials, modelled in metres at 28 cm × 32 cm × 31 cm.
Is Ticket feed animated?
Yes — the GLB carries a baked animation (4.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 Ticket feed 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 #34 of 1378.