Ceiling fan
A low-poly apartment ceiling fan on a short downrod: a sage motor housing and bell canopy, four oak paddle blades on black irons, and a frosted bowl light with brass fittings and a pull chain. It has a seamless 4 s loop in which the blades turn once and the pull chain sways.

Left rail: colours and the 5 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,312
- Vertices
- 3,936
- Meshes · materials
- 17 · 17
- Size (W × H × D)
- 1.3 m × 66 cm × 1.3 m
- File
- GLB · 121 KB
- Animation
- scene-motion · 4.0s
- Style
- Low-poly
- Collection
- Cozy Apartment
Palette · named materials
- sage (wall tone at default): canopy bell, motor housing covers, switch cup#89a178
- oak: blades, pull-chain bob#8f693d
- oak dark: rotor band, ceiling plate#594126
- mustard: brass collar, coupler, trim ring, light fitter, finial, chain links#c39b22
- warm white light: frosted light bowl#f9f7f6
- soot black: blade irons, clevis pin, chain eyelet#1b1b22
- mid grey: downrod#7d828c
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/cozy-apartment-ceiling-fan/b8f95718e1/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:
Ceiling fan for the Cozy Apartment 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 Cozy Apartment kit (Low-poly style, flat-lowpoly direction): A small lived-in city flat. Use ONLY the kit palette, by name: warm white #f9f7f5, oak #8f693d, mustard #c39b22, sage #89a178, warm white dark #ddd2c6, oak dark #594126, warm white light #f9f7f6, oak light #b48f64, soot black #1b1b22, 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 `wallColour` (0–1, default 0.5) for the kit's "Wall colour" 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
Named parts · 8
- Ceiling fan
- Canopy
- Downrod
- Motor housing
- Switch cup
- Bowl light kit
- Pull chain
- Rotor and blades
Note: Size: 1.32 m blade sweep (a 52-inch fan) and 0.66 m tall from the finial tip to the ceiling plate, with a 0.15 m downrod, which suits a 2.4–2.7 m apartment ceiling. It is modelled as installed, canopy up. To follow the library convention, the origin is at the bottom centre and the light-kit finial rests on y = 0, so in a scene you raise it until the ceiling plate (y = 0.66) meets your ceiling. The GLB has 1,312 triangles in 17 meshes and uses 7 of the 11 kit palette colours. Every material is named exactly after its colour, and the exporter writes one material per mesh, so a name can repeat: recolour by name. The baked clip scene-motion (4 s, seamless) moves only two parts, each on its own pivot. The rotor turns one full turn about the downrod axis, anticlockwise seen from below. The pull chain sways about its eyelet on the fitter rim. The canopy, downrod, housing, switch cup and light kit never move. The spin is much slower than a real fan so it reads in the viewer; speed it up in your engine if you need to. Params are baked into the GLB at their defaults and only change the model when the scene is rebuilt in the viewer. wallColour (the kit's 'Wall colour') paints the canopy, housing and switch cup along the kit's wall ramp, matching cozy-apartment-wall: warm white below 0.25, warm white dark below 0.5, sage below 0.75, mustard from 0.75. The default 0.5 gives sage. lightKit 0 removes the bowl, and an acorn finial under the switch cup then rests on y = 0. bladeCount sets 3 to 5 blades, downrodLength sets the drop, and spinTurns sets 1 to 3 rotor turns per loop. Only the default params were rendered and checked. The bowl has no emissive glow; add a light in your engine. glb-lint reports 0 errors. Its 5 warnings are expected for this pipeline: per-mesh materials above the soft max, duplicate material names, non-indexed flat-shaded geometry, nested light-kit pieces, and canopy plate and switch cup flagged as detached although they sit face to face on the bell and housing. Its verdict reads UNVERIFIED only because no requirements contract was supplied. plan-check's part-id regex rejects the hyphenated slug ids this library requires, so the plan was validated on a de-hyphenated copy (PASS). three-check accepts the real ids, and all 8 survive the GLB reload.
About the Ceiling fan 3D model
Ceiling fan is a free animated low-poly 3D model from the Cozy Apartment set. It measures 1.3 m × 66 cm × 1.3 m (W × H × D) at real-world scale and is built from 1,312 triangles across 17 meshes, with 8 named parts and a baked animation (4.0 s). Download the 121 KB GLB and drop it into three.js, React Three Fiber, Godot or Blender — free for commercial use, no attribution required.
- Is the Ceiling fan 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), 121 KB: 1,312 triangles, 3,936 vertices and 17 materials, modelled in metres at 1.3 m × 66 cm × 1.3 m.
- Is Ceiling fan 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 Ceiling fan 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.
More like this
All of Cozy Apartment →
Curtains
Cozy Apartment2,960 tris

Robot vacuum
Cozy Apartment1,100 tris

Opening doors and drawers
Cozy Apartment1,436 tris

Mugs
Cozy Apartment1,340 tris

Cushions
Cozy Apartment1,576 tris

Posters
Cozy Apartment864 tris

Record player
Cozy Apartment1,420 tris

Plants
Cozy Apartment2,852 tris
Free under the 1DesignTool 3D library license. Model #22 of 1378.