FREEcommercial use · no sign-up

Swinging bulb

A low-poly amber globe bulb on a black flex cord, hanging from a ceiling rose in one free-standing bay of dark-wood attic rafters on dusty floorboards, with cobwebs in the truss corners. It plays a seamless 4-second loop in which the bulb swings twice and its pull cord lags beside it.

Swinging bulb 3D model
This model carries a baked animation clip.

Left rail: colours and the 3 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
1,184
Vertices
3,552
Meshes · materials
19 · 19
Size (W × H × D)
2.0 m × 2.3 m × 72 cm
File
GLB · 115 KB
Animation
scene-motion · 4.0s

Palette · named materials

  • dark wood: rafters#3d2a1c
  • dust brown: collar ties, floorboards#6b4a2e
  • dust brown light: batten under the collars, alternate floorboards, pull-cord acorn#9b704b
  • dust brown dark: floor bearers, wall plates, ridge board#362517
  • bulb amber: globe bulb glass (slightly emissive)#ec9c13
  • soot black: flex cord, bakelite lampholder#1b1b22
  • warm white: ceiling rose, pull cord, cobweb strands#f2ede2
  • mid grey: bulb screw cap#7d828c
  • cobweb grey dark: holder skirt ring, pull-switch lug and eyelet, cap collar#525860
  • cobweb grey: dust patches#757e8a
  • faded colours: translucent cobweb film#a6a6a6

Use it

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

const gltf = await new GLTFLoader().loadAsync(
  "https://assets.stoicsoft.com/1designtool/3d/models/attic-and-basement-swinging-bulb/d5a979a4e7/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:

Swinging bulb for the Attic and Basement 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 Attic and Basement kit (Low-poly style, flat-lowpoly direction): Forgotten things above and below. Use ONLY the kit palette, by name: dust brown #6b4a2e, cobweb grey #757e8a, bulb amber #ec9c13, faded colours #a6a6a6, dust brown dark #362517, cobweb grey dark #525860, dust brown light #9b704b, cobweb grey light #a3a5a8, 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 `dustAndCobwebLevel` (0–1, default 0.5) for the kit's "Dust and cobweb level" 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 abstract-kinetic
  • three-check PASS · glb-lint PASS
Make your own with 1DesignTool →

Named parts · 8

  • Swinging bulb
  • Floorboards
  • Roof trusses, ridge and batten
  • Ceiling rose
  • Cord and lampholder
  • Amber globe bulb
  • Pull cord
  • Dust and cobwebs

Note: Size: 1.96 m wide across the floorboards, 2.34 m tall to the top of the ridge board and 0.70 m deep. The bulb is a 150 mm amber globe hanging on a 0.8 m cord from a rose 1.63 m up, with its bottom about 0.56 m above the ground at rest. The front faces +Z, +Y is up, and the origin is at the bottom centre with the floor bearers resting on y = 0. The GLB has 1,184 triangles in 19 meshes (merged per part and colour), no textures, and flat normals (non-indexed), so the facets survive in any engine. Every material is named exactly after its kit palette colour (11 of the 12 kit colours; cobweb grey light is unused). The exporter writes one material per mesh, so a colour name can repeat: recolour by name. The cobweb film is a translucent, double-sided 'faded colours' material, and the bulb glass has a faint amber emissive. Motion: one baked 4 s clip, 'scene-motion', at 30 fps. The pendant group (cord, holder and bulb) pivots at the cord grip in the ceiling rose (x = 0, y = 1.63, z = 0) and makes two whole swings of ±24° per loop (about a 2 s period, as a real 1 m pendulum would), mostly along Z with a small sideways component, so the bulb traces a narrow ellipse. The pull cord is a child of the pendant, pivots on its eyelet under the holder and lags the bulb. The floor, trusses and rose never move. The swing is phase-shifted by an eighth of a cycle, so the static node pose in the GLB shows the bulb out on its arc, not hanging plumb. Params are baked into the GLB at their defaults and only change the geometry when the scene is rebuilt in the viewer. dustAndCobwebLevel (the kit's 'Dust and cobweb level') does two things. It grows the grey dust patches on the collar, the wall plates and the boards; at 0 there are none. It also adds cobwebs one at a time: under the ridge first, then in the two corners above the front collar. cordLength (0.4–1.0 m) sets how far the bulb drops, and swingAmplitude (0–35°) sets the arc. At the maxima (1.0 m, 35°) the model is 1,388 triangles and still clears the floor and trusses. glb-lint reports 0 errors and 6 heuristic warnings: material count and duplicate materials (from the per-mesh materials), unindexed geometry (flat shading, on purpose), sibling overlap (plates, collars and the batten are jointed into the rafters on purpose), a 'detached' rose (it is embedded 6 mm into the batten, which belongs to another part) and scale (compared with the direction's 1 m reference). plan-check passes except for its part-id regex, which rejects the hyphens this library's slug-based ids need; the same plan with the slug de-hyphenated passes. three-check accepts those ids, and all 8 survive the GLB reload.

About the Swinging bulb 3D model

Swinging bulb is a free animated low-poly 3D model from the Attic and Basement set. It measures 2.0 m × 2.3 m × 72 cm (W × H × D) at real-world scale and is built from 1,184 triangles across 19 meshes, with 8 named parts and a baked animation (4.0 s). Download the 115 KB GLB and drop it into three.js, React Three Fiber, Godot or Blender — free for commercial use, no attribution required.

Is the Swinging bulb 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), 115 KB: 1,184 triangles, 3,552 vertices and 19 materials, modelled in metres at 2.0 m × 2.3 m × 72 cm.
Is Swinging bulb 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 Swinging bulb 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 #20 of 1526.