Photo frames
A low-poly group of forgotten photo frames on the attic floor: a big dark-wood portrait frame with a gilt slip and a sepia sitter, propped on its easel strut, a matted landscape frame leaning against it, and a small pewter frame with two figures, all with dust and cobwebs.

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,300
- Vertices
- 3,900
- Meshes · materials
- 28 · 28
- Size (W × H × D)
- 1.0 m × 73 cm × 60 cm
- File
- GLB · 119 KB
- Animation
- Static
- Style
- Low-poly
- Collection
- Attic and Basement
Palette · named materials
- dark wood — portrait moulding (body)#3d2a1c
- bulb amber — gilt slip and the low sun in the landscape (accent)#ec9c13
- dust brown light — sepia photo and landscape crown (body)#9b704b
- dust brown dark — sepia sitter, backing boards, small easel back (trim)#362517
- dust brown — landscape moulding and portrait easel strut (body)#6b4a2e
- cobweb grey light — translucent glass, landscape sky, small frame bead (glass)#a3a5a8
- mid grey — small pewter moulding and the far hills (body)#7d828c
- cobweb grey — foreground hill (body)#757e8a
- cobweb grey dark — two figures in the small frame (trim)#525860
- warm white — mats and cobweb strands (accent)#f2ede2
- faded colours — small frame photo, dust strips and translucent cobweb film (accent)#a6a6a6
- soot black — strut hinge, screw eyes and hanging wire (trim)#1b1b22
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-photo-frames/f823b7c439/model.glb"
);
scene.add(gltf.scene); // metres, +Y up, front faces +ZHow it was made
The brief given to 1DesignTool's “3D object” template:
Photo frames 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. 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 products
- three-check PASS · glb-lint PASS
Named parts · 33
- Photo frames
- Portrait frame
- Portrait moulding
- Gilt slip
- Sepia photo
- Sepia portrait
- Portrait glass
- Portrait backing
- Easel strut
- Hinge and hanging wire
- Landscape frame
- Landscape moulding
- Landscape crown
- Mat
- Sky
- Low sun
- Landscape picture
- Foreground hill
- Landscape glass
- Landscape backing
- Small frame
- Small moulding
- Small bead
- Small mat
- Small photo
- Two figures
- Small glass
- Small backing
- Small easel back
- Dust and cobwebs
- Dust strips
- Cobweb film
- Cobweb strands
Note: Size: 1.05 m wide (x), 0.60 m deep (z) and 0.73 m tall. The origin is at the bottom centre on y = 0 and the front faces +Z. The portrait frame is 0.56 × 0.74 m (portraitHeight sets its height, 0.6 to 0.9 m), the landscape frame 0.44 × 0.34 m and the small frame 0.20 × 0.25 m. leanAngle tilts the portrait frame back on its easel strut (6° to 20°); the landscape frame's position is recomputed so its top edge always rests on the portrait's right stile. dustAndCobwebLevel sets the number and length of dust strips on the three top rails (1 to 3 each), the cobwebs from the frame sides to the floor (1 to 3), their size, and how grimy the glass looks (glass opacity 0.14 to 0.34). At 0, one strip per rail and one small cobweb remain, so the dust part always exists. Both param extremes passed three-check and glb-lint. 1,300 triangles, counted from the GLB; three-check's figure also counts the viewer staging ground, which is not exported. Static: no animation clip. The model has no textures and no lights. The pictures are flat-colour shapes (a sepia sitter, hills and a sun, two figures), with no text or faces. Every material is named exactly after its kit palette colour. three.js's exporter writes one material per mesh, so names repeat. The glass and cobweb film are translucent (BLEND) materials that share names with opaque parts ('cobweb grey light', 'faded colours'). plan-check's part-id pattern rejects the hyphenated slug ids the brief requires; the plan passed plan-check with the hyphens removed and is otherwise unchanged. glb-lint: 0 errors. It warns on material count, duplicate material names, non-indexed flat-shaded geometry and nested sibling parts (glass, photo and mat inside the moulding).
About the Photo frames 3D model
Photo frames is a free low-poly 3D model from the Attic and Basement set. It measures 1.0 m × 73 cm × 60 cm (W × H × D) at real-world scale and is built from 1,300 triangles across 28 meshes, with 33 named parts. Download the 119 KB GLB and drop it into three.js, React Three Fiber, Godot or Blender — free for commercial use, no attribution required.
- Is the Photo frames 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), 119 KB: 1,300 triangles, 3,900 vertices and 28 materials, modelled in metres at 1.0 m × 73 cm × 60 cm.
- Can I animate Photo frames?
- It ships as a static mesh. Its 33 named parts are separate nodes, so you can move or animate each one in your engine.
- 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 Photo frames 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 Attic and Basement →
Creaking rocking chair
Attic and Basement1,424 tris

Boiler rumble
Attic and Basement1,656 tris

Tools
Attic and Basement1,306 tris

Jars
Attic and Basement2,620 tris

Swinging bulb
Attic and Basement1,184 tris

Sheet-covered furniture
Attic and Basement3,856 tris

Trunks
Attic and Basement1,260 tris

Old toys
Attic and Basement2,544 tris
Free under the 1DesignTool 3D library license. Model #19 of 1526.