FREEcommercial use · no sign-up

Portraits

A low-poly ancestral portrait for a haunted mansion: an arched dark-wood frame with a gilt slip and crest, and a stern grey-whiskered sitter whose amber eyes stare out of the dark canvas. A decay knob tears the canvas, grows moss on the frame and knocks the crest askew.

Portraits 3D model

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
1,180
Vertices
3,207
Meshes · materials
37 · 10
Size (W × H × D)
80 cm × 1.2 m × 11 cm
File
GLB · 142 KB
Animation
Static
Collection
Haunted Mansion

Palette · named materials

  • frame#3d2a1c
  • gilt#ec9c13
  • shadow#1b1b22
  • coat#584861
  • skin#e4ddcd
  • linen#f9f8f5
  • backing#c9ba9c
  • hair#7d828c
  • foliage#55743e
  • jewel#81688d

Use it

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

const gltf = await new GLTFLoader().loadAsync(
  "https://assets.stoicsoft.com/1designtool/3d/models/haunted-mansion-portraits/429a191e2f/model.glb"
);
scene.add(gltf.scene); // metres, +Y up, front faces +Z

How it was made

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

Portraits for the Haunted Mansion 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 Haunted Mansion kit (Low-poly style, flat-lowpoly direction): A decaying house that watches back. Use ONLY the kit palette, by name: faded purple #81688d, bone #e4ddcd, moss #55743e, candle amber #ec9c13, faded purple dark #584861, bone dark #c9ba9c, faded purple light #a497aa, bone light #f9f8f5, 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 `decayLevel` (0–1, default 0.5) for the kit's "Decay level" setting wherever it makes sense on this part, and keep that id.
  • Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
  • Generation: 4.11M tokens (95% cached) · ≈ $3.18 at API prices · 5-hour plan +9%
  • Direction: Low-poly · family products
  • three-check PASS · glb-lint PASS
Make your own with 1DesignTool →

Named parts · 10

  • Portrait
  • Frame moulding
  • Gilt slip
  • Crest
  • Corner rosettes
  • Canvas
  • Painted figure
  • Eyes
  • Backing board
  • Decay (tear, moss)

Note: Real-world size at default params: 0.80 m wide x 1.23 m tall (1.10 m frame plus crest) x about 0.11 m deep, origin at bottom centre, resting on y = 0, front facing +Z. It is authored to hang on a wall or lean on a floor or mantel, and the back is finished (backing board, hanging cleat, turn buttons). The GLB has 1180 triangles, 37 meshes and 10 materials, each named exactly after its kit palette colour (dark wood, candle amber, soot black, faded purple dark, bone, bone light, bone dark, mid grey, moss, faded purple) so the kit recolours as one. Material roles are stored in userData.role. The sitter is modelled in low relief, with no textures or text. Part ids use the sanitized slug 'hauntedmansionportraits' because the kit's id grammar does not allow hyphens. decayLevel (kit 'Decay level') changes the geometry: above 0.08 it adds a canvas tear with a peeling flap, it adds up to 10 moss mounds on the bottom-left corner (and the bottom-right corner above 0.7), it tilts the crest up to 8 degrees, and above 0.75 it drops the lower-right boss. At 0 the decay node is empty. gaze moves the pupils. Static prop with no animation clip. glb-lint reports 0 errors; its verdict is UNVERIFIED because no requirements contract was supplied, and it gives 3 heuristic warnings: non-indexed primitives (needed for flat shading), nested frame/slip/canvas boxes (intended), and bosses and the tear sitting on the frame and canvas, which live in other groups. The one known framing nit: the 390x844 hero capture crops the left stile slightly.

About the Portraits 3D model

Portraits is a free low-poly 3D model from the Haunted Mansion set. It measures 80 cm × 1.2 m × 11 cm (W × H × D) at real-world scale and is built from 1,180 triangles across 37 meshes, with 10 named parts. Download the 142 KB GLB and drop it into three.js, React Three Fiber, Godot or Blender — free for commercial use, no attribution required.

Is the Portraits 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), 142 KB: 1,180 triangles, 3,207 vertices and 10 materials, modelled in metres at 80 cm × 1.2 m × 11 cm.
Can I animate Portraits?
It ships as a static mesh. Its 10 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 Portraits 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 #1 of 761.