{"data":{"id":"132","slug":"canal-town-and-windmill","title":"Canal Town and Windmill","summary":"Walk a canal through a small brick town: gable terraces to the water, a working quay with a crane and a moored barge, a drawbridge, lock gates and a humpback bridge, and a tower mill turning its sails at the west end.","url":"https://3dassets.dev/demos/canal-town-and-windmill","coverUrl":"https://cdn.3dassets.dev/media/canal-town-and-windmill-demo.png","featured":true,"pack":{"slug":"canal-town-and-windmill","title":"Canal Town and Windmill","url":"https://3dassets.dev/packs/canal-town-and-windmill","summary":"A northern European canal town on a 4 m grid: stepped and bell gable house fronts with pantile roofs, a quay, bridges, a lock and the craft that work them, and a tower mill whose cap winds and whose four sails turn.","assetCount":57,"totalBytes":11480996,"starterScene":{"slug":"canal-town-and-windmill-canal-town-quay--3bebfcd5-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/36693/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-town-quay--3bebfcd5-starter-scene","fileSize":4561208}},"placementCount":343,"assetCount":56,"spawn":{"position":[15.4,0,-5.4],"yaw":-92},"publishedAt":"2026-09-11T22:34:20.177Z","updatedAt":"2026-09-11T22:34:20.177Z","description":"## What is placed\n\nAn unnamed canal town, 56 m of water end to end. The cut runs the length of the plot as water plane modules set into the ground rather than a hole in it, quay edged on both banks, with a stepped landing down to the water on each side. A drawbridge stands at the west end, lock gates hold the middle and a humpback bridge arches over the east end. A barge lies alongside the working quay under the crane post, with a rowing boat, a punt and fender piles at other moorings.\n\nThe north bank is built up to the water: eleven stepped and bell gable fronts in three widths, a corner block at the end, party walled into one terrace under pantile roofs with ridge caps, dormers and chimney stacks, each with a doorstep and railing and window boxes on the sill. The south bank is the working side: a warehouse front with its hoist beam, a bay shopfront and three more houses, and beyond them the open market quay with awninged stalls, cheese boards, a churn, barrels, packing crates, bulb crates and tulip troughs, worked by handcarts, a delivery bicycle and a wheelbarrow. Street lamps, benches, hitching posts, blank signposts, water pumps, duckboards and clothes lines dress both banks.\n\nThe tower mill stands at the west end of the working bank: lower and upper drum stages, the stage gallery, the cap and tail pole, the sail cross and the hoist beam over the entry door. The tower itself is sealed, so the mill's own gear stands out in the yard under the stage where you can walk round it: the millstones and tun in their case, the grain hopper and chute, sacks, the flour cart and a spare sail frame. That yard is the only place a visitor meets the machinery, and it is worth the detour.\n\n311 placements of 56 models, about 6.6 MB of GLB in all.\n\n## What moves\n\nThe sail cross spins on the cap, and the cap and tail pole turn to bring the sails round to the wind. The drawbridge beam lifts its deck and the lock gates swing open. Every house front opens its door and its shutters, the dormer casements open, the warehouse shutter doors and its hoist run, and the shopfront opens. The mill's entry door opens, its hoist hook lifts, and the millstones turn in the tun. The crane post slews its jib and the barge steers. Wheels roll on the flour cart, both handcarts, both bicycles and the wheelbarrows, the water pump handles rock and the churn paddle turns. Twenty three of the placed models carry clips, and all of them stand beside the walk.\n\n## What does not move, and why\n\nSailcloth, mooring ropes, the washing on the lines, the water and the chimney smoke are static geometry. Each of them is flexible material, which needs a joint per element to deform, and the rigid node transform this library animates with cannot give that; a faked version would cost a consumer more than it gives. There are no people and no animals: the pack has no skinned meshes. This is a made up town, and every signboard, gable stone, shop sign and name board on it is deliberately blank, so a consumer can letter them for their own world.","scene":{"version":1,"spawn":{"position":[15.4,0,-5.4],"yaw":-92},"bounds":{"min":[-27,0,-17],"max":[27,20,16.5]},"ground":{"style":"none"},"environment":{"preset":"outdoor","wallHeight":16,"light":"day","shadows":true},"placements":[{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-24,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-24,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-20,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-20,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-16,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-16,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-12,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-12,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-8,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-8,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-4,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[-4,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[0,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[0,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[4,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[4,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[8,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[8,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[12,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[12,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[16,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[16,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[20,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[20,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[24,-1.2,-2],"rotation":0},{"asset":"canal-town-and-windmill-canal-water-module-4a9bd252","position":[24,-1.2,2],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-24,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-24,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-20,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-20,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-16,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-16,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-12,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-12,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-8,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-8,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-stepped-landing-8b15cf0f","position":[-4,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[-4,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[0,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[0,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[4,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[4,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[8,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[8,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[12,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-stepped-landing-8b15cf0f","position":[12,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[16,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[16,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[20,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[20,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[24,-1.2,-4.35],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-edge-7ff35b35","position":[24,-1.2,4.35],"rotation":180},{"asset":"canal-town-and-windmill-canal-drawbridge-3c317687","position":[-18,-0.6,4.12],"rotation":180},{"asset":"canal-town-and-windmill-canal-lock-gate-pair-3b0b9277","position":[22,-1.2,0],"rotation":90},{"asset":"canal-town-and-windmill-canal-humpback-bridge-9590734c","position":[18,-1.2,0],"rotation":90},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-24,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-24,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-24,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-24,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-20,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-20,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-20,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-20,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-16,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-16,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-16,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-16,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-12,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-12,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-12,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-12,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-8,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-8,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-8,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-8,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-4,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-4,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-4,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-4,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[0,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[0,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[0,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[0,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[4,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[4,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[4,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[4,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[8,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[8,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[8,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[8,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[12,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[12,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[12,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[12,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[16,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[16,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[16,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[16,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[20,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[20,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[20,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[20,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[24,-0.13,-6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[24,-0.13,6.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[24,-0.13,10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[24,-0.13,14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-24,-0.13,-10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-24,-0.13,-14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-20,-0.13,-10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-20,-0.13,-14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-16,-0.13,-10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-16,-0.13,-14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-12,-0.13,-10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[-12,-0.13,-14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[16,-0.13,-10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[16,-0.13,-14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[20,-0.13,-10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[20,-0.13,-14.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[24,-0.13,-10.7],"rotation":0},{"asset":"canal-town-and-windmill-cobbled-street-module-79614337","position":[24,-0.13,-14.7],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-corner-block-2b7f1aa4","position":[-20,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-20,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-20,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[-20,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[-20,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-medium-71ffaaf9","position":[-16,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-16,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-16,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[-16,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[-16,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-narrow-7e9216de","position":[-12,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-12,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-12,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[-12,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[-12,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-wide-bef69b8b","position":[-8,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-8,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-8,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[-8,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[-8,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-medium-71ffaaf9","position":[-4,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-4,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-4,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[-4,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[-4,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-bell-gable-950e4b1c","position":[0,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[0,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[0,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[0,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[0,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-medium-71ffaaf9","position":[4,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[4,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[4,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[4,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[4,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-narrow-7e9216de","position":[8,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[8,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[8,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[8,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[8,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-wide-bef69b8b","position":[12,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[12,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[12,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[12,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[12,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-medium-71ffaaf9","position":[16,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[16,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[16,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[16,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[16,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-canal-house-front-bell-gable-950e4b1c","position":[20,0,9],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[20,6.8,9.28],"rotation":180},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[20,6.8,14.48],"rotation":0},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[20,9.4,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[20,0,14.75],"rotation":0},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[-18,9,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[-10,9,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[-2,9,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[6,9,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[14,9,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[22,9,11.879999999999999],"rotation":0},{"asset":"canal-town-and-windmill-pantile-dormer-window-c219ac17","position":[-14,7.4,10.22],"rotation":180},{"asset":"canal-town-and-windmill-pantile-dormer-window-c219ac17","position":[-6,7.4,10.22],"rotation":180},{"asset":"canal-town-and-windmill-pantile-dormer-window-c219ac17","position":[2,7.4,10.22],"rotation":180},{"asset":"canal-town-and-windmill-pantile-dormer-window-c219ac17","position":[10,7.4,10.22],"rotation":180},{"asset":"canal-town-and-windmill-pantile-dormer-window-c219ac17","position":[18,7.4,10.22],"rotation":180},{"asset":"canal-town-and-windmill-warehouse-front-with-hoist-afaa53f4","position":[-4,0,-9],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-4,6.8,-9.28],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[-4,6.8,-14.48],"rotation":180},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[-4,9.4,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[-4,0,-14.75],"rotation":180},{"asset":"canal-town-and-windmill-shopfront-bay-front-95289f9b","position":[0,0,-9],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[0,6.8,-9.28],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[0,6.8,-14.48],"rotation":180},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[0,9.4,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[0,0,-14.75],"rotation":180},{"asset":"canal-town-and-windmill-canal-house-front-narrow-7e9216de","position":[4,0,-9],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[4,6.8,-9.28],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[4,6.8,-14.48],"rotation":180},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[4,9.4,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[4,0,-14.75],"rotation":180},{"asset":"canal-town-and-windmill-canal-house-front-medium-71ffaaf9","position":[8,0,-9],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[8,6.8,-9.28],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[8,6.8,-14.48],"rotation":180},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[8,9.4,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[8,0,-14.75],"rotation":180},{"asset":"canal-town-and-windmill-canal-house-corner-block-2b7f1aa4","position":[12,0,-9],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[12,6.8,-9.28],"rotation":0},{"asset":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","position":[12,6.8,-14.48],"rotation":180},{"asset":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","position":[12,9.4,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-town-party-wall-run-092848b7","position":[12,0,-14.75],"rotation":180},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[-2,9,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[6,9,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","position":[14,9,-11.879999999999999],"rotation":180},{"asset":"canal-town-and-windmill-pantile-dormer-window-c219ac17","position":[2,7.4,-10.22],"rotation":0},{"asset":"canal-town-and-windmill-pantile-dormer-window-c219ac17","position":[10,7.4,-10.22],"rotation":0},{"asset":"canal-town-and-windmill-mill-tower-lower-stage-bb445c4d","position":[-20,0,-11],"rotation":0},{"asset":"canal-town-and-windmill-mill-stage-gallery-dbfa36b3","position":[-20,4.2,-11],"rotation":0},{"asset":"canal-town-and-windmill-mill-tower-upper-stage-9509f5db","position":[-20,4.2,-11],"rotation":0},{"asset":"canal-town-and-windmill-mill-cap-and-tail-pole-b202be11","position":[-20,7.5,-11],"rotation":0},{"asset":"canal-town-and-windmill-mill-sail-cross-409ea4d1","position":[-20,8.6,-7.25],"rotation":0},{"asset":"canal-town-and-windmill-mill-entry-door-unit-fb54166e","position":[-20,0,-7.86],"rotation":0},{"asset":"canal-town-and-windmill-mill-hoist-beam-and-hook-71764b90","position":[-18.5,4.4,-8.5],"rotation":0},{"asset":"canal-town-and-windmill-canal-quay-crane-fbb483b8","position":[-10,0,-5.6],"rotation":0},{"asset":"canal-town-and-windmill-canal-barge-hull-df431a75","position":[-10,-0.75,-1.6],"rotation":-90},{"asset":"canal-town-and-windmill-canal-rowing-boat-8609513a","position":[8.6,-0.5,-2.6],"rotation":84},{"asset":"canal-town-and-windmill-canal-rowing-boat-8609513a","position":[22,-0.5,2.4],"rotation":-95},{"asset":"canal-town-and-windmill-canal-punt-f6e10158","position":[-2,-0.42,2.8],"rotation":96},{"asset":"canal-town-and-windmill-canal-fender-piles-a63d9eb8","position":[-14,-1.2,-3.7],"rotation":0},{"asset":"canal-town-and-windmill-canal-fender-piles-a63d9eb8","position":[6,-1.2,-3.7],"rotation":0},{"asset":"canal-town-and-windmill-canal-fender-piles-a63d9eb8","position":[20,-1.2,-3.7],"rotation":0},{"asset":"canal-town-and-windmill-canal-fender-piles-a63d9eb8","position":[-10,-1.2,3.7],"rotation":180},{"asset":"canal-town-and-windmill-canal-fender-piles-a63d9eb8","position":[10,-1.2,3.7],"rotation":180},{"asset":"canal-town-and-windmill-canal-fender-piles-a63d9eb8","position":[22,-1.2,3.7],"rotation":180},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[4,0,-7.4],"rotation":0},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[8,0,-7.4],"rotation":0},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[12,0,-7.4],"rotation":0},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[4,3.05,-8.56],"rotation":0},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[8,3.05,-8.56],"rotation":0},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[0,3.05,-8.56],"rotation":0},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[-16,0,7.4],"rotation":180},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[-12,0,7.4],"rotation":180},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[-4,0,7.4],"rotation":180},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[4,0,7.4],"rotation":180},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[8,0,7.4],"rotation":180},{"asset":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","position":[16,0,7.4],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[-16,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[-12,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[-8,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[-4,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[0,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[4,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[8,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[12,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[16,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","position":[20,3.05,8.56],"rotation":180},{"asset":"canal-town-and-windmill-mill-millstones-and-tun-cd6f8efc","position":[-14.48,0,-7.78],"rotation":24},{"asset":"canal-town-and-windmill-mill-grain-hopper-and-chute-2111998e","position":[-15.2,0,-12.2],"rotation":-16},{"asset":"canal-town-and-windmill-mill-grain-sacks-5b7598bd","position":[-15.3,0,-14.8],"rotation":40},{"asset":"canal-town-and-windmill-mill-grain-sacks-5b7598bd","position":[-11.7,0,-8.4],"rotation":15},{"asset":"canal-town-and-windmill-mill-flour-cart-156904a4","position":[-22.39,0,-15.86],"rotation":104},{"asset":"canal-town-and-windmill-mill-spare-sail-frame-a0450e8d","position":[-11.5,0,-15],"rotation":100},{"asset":"canal-town-and-windmill-yard-broom-4b22ca03","position":[-14.79,0,-10.06],"rotation":118},{"asset":"canal-town-and-windmill-yard-wheelbarrow-99feba61","position":[-12.4,0,-12.6],"rotation":70},{"asset":"canal-town-and-windmill-quayside-packing-crates-3199787b","position":[-18.09,0,-6.49],"rotation":15},{"asset":"canal-town-and-windmill-quayside-oak-barrels-331e1518","position":[-9.89,0,-11.56],"rotation":-30},{"asset":"canal-town-and-windmill-flower-bulb-crate-9acc548e","position":[-11.4,0,-6.6],"rotation":52},{"asset":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","position":[-24,0,7.5],"rotation":0},{"asset":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","position":[-25.25,0,9],"rotation":0},{"asset":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","position":[24.57,0,7.39],"rotation":0},{"asset":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","position":[23.31,0,9.29],"rotation":0},{"asset":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","position":[-8.99,0,-9.49],"rotation":90},{"asset":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","position":[-6.75,0,-12.5],"rotation":90},{"asset":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","position":[16.75,0,-12.5],"rotation":90},{"asset":"canal-town-and-windmill-market-stall-with-awning-a330661e","position":[7.6,0,-10.4],"rotation":10},{"asset":"canal-town-and-windmill-market-stall-with-awning-a330661e","position":[14.95,0,-7.5],"rotation":-8},{"asset":"canal-town-and-windmill-market-stall-with-awning-a330661e","position":[20.4,0,-7.3],"rotation":6},{"asset":"canal-town-and-windmill-market-stall-with-awning-a330661e","position":[18.98,0,-10.88],"rotation":170},{"asset":"canal-town-and-windmill-cheese-stack-on-board-bc1cf9a0","position":[8.16,0,-11.86],"rotation":-12},{"asset":"canal-town-and-windmill-cheese-stack-on-board-bc1cf9a0","position":[16.26,0,-9.06],"rotation":20},{"asset":"canal-town-and-windmill-dairy-butter-churn-ca51f19e","position":[9.99,0,-6.99],"rotation":28},{"asset":"canal-town-and-windmill-dairy-butter-churn-ca51f19e","position":[16.85,0,-10.92],"rotation":-20},{"asset":"canal-town-and-windmill-quayside-oak-barrels-331e1518","position":[4.3,0,-10.6],"rotation":34},{"asset":"canal-town-and-windmill-quayside-oak-barrels-331e1518","position":[22,0,-11.2],"rotation":12},{"asset":"canal-town-and-windmill-quayside-packing-crates-3199787b","position":[5.06,0,-12.65],"rotation":40},{"asset":"canal-town-and-windmill-quayside-packing-crates-3199787b","position":[17.21,0,-14.26],"rotation":-36},{"asset":"canal-town-and-windmill-quayside-packing-crates-3199787b","position":[20.82,0,-8.82],"rotation":25},{"asset":"canal-town-and-windmill-quayside-packing-crates-3199787b","position":[23.85,0,-12.8],"rotation":-10},{"asset":"canal-town-and-windmill-flower-bulb-crate-9acc548e","position":[15.73,0,-10.28],"rotation":-15},{"asset":"canal-town-and-windmill-flower-bulb-crate-9acc548e","position":[18.85,0,-8.65],"rotation":30},{"asset":"canal-town-and-windmill-tulip-trough-8346114c","position":[6.98,0,-6.32],"rotation":8},{"asset":"canal-town-and-windmill-tulip-trough-8346114c","position":[18,0,-6.5],"rotation":-6},{"asset":"canal-town-and-windmill-tulip-trough-8346114c","position":[12.57,0,-6.4],"rotation":4},{"asset":"canal-town-and-windmill-street-handcart-e85e9ee4","position":[19.73,0,-14.23],"rotation":64},{"asset":"canal-town-and-windmill-street-handcart-e85e9ee4","position":[1.24,0,-11.36],"rotation":110},{"asset":"canal-town-and-windmill-delivery-bicycle-13493bc2","position":[23.1,0,-7.2],"rotation":150},{"asset":"canal-town-and-windmill-delivery-bicycle-13493bc2","position":[3.4,0,-2.45],"rotation":-160},{"asset":"canal-town-and-windmill-yard-wheelbarrow-99feba61","position":[25.45,0,-8.17],"rotation":52},{"asset":"canal-town-and-windmill-yard-broom-4b22ca03","position":[20.59,0,-12.34],"rotation":95},{"asset":"canal-town-and-windmill-quayside-bench-13badf82","position":[2.2,0,-6.35],"rotation":0},{"asset":"canal-town-and-windmill-quayside-bench-13badf82","position":[10.1,0,-6.12],"rotation":0},{"asset":"canal-town-and-windmill-quayside-bench-13badf82","position":[25,0,-6.35],"rotation":0},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[-2,0,-6.4],"rotation":0},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[8.75,0,-6.4],"rotation":0},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[23.05,0,-8.94],"rotation":0},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[-12.25,0,-6.4],"rotation":0},{"asset":"canal-town-and-windmill-town-hitching-post-28eb6d39","position":[14,0,-6.3],"rotation":0},{"asset":"canal-town-and-windmill-town-hitching-post-28eb6d39","position":[5.8,0,-6.3],"rotation":0},{"asset":"canal-town-and-windmill-town-hitching-post-28eb6d39","position":[-6.4,0,-6.3],"rotation":0},{"asset":"canal-town-and-windmill-town-signpost-blank-boards-5e143417","position":[0.6,0,-2.35],"rotation":0},{"asset":"canal-town-and-windmill-town-signpost-blank-boards-5e143417","position":[-25.22,0,-7.47],"rotation":20},{"asset":"canal-town-and-windmill-street-water-pump-cb57e753","position":[-8.2,0,-6.9],"rotation":180},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[-18,0,7.65],"rotation":180},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[-6,0,6.4],"rotation":180},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[6,0,6.4],"rotation":180},{"asset":"canal-town-and-windmill-town-street-lamp-2c561969","position":[18,0,6.4],"rotation":180},{"asset":"canal-town-and-windmill-quayside-bench-13badf82","position":[-12,0,6.45],"rotation":180},{"asset":"canal-town-and-windmill-quayside-bench-13badf82","position":[4,0,6.45],"rotation":180},{"asset":"canal-town-and-windmill-quayside-bench-13badf82","position":[16,0,6.45],"rotation":180},{"asset":"canal-town-and-windmill-town-hitching-post-28eb6d39","position":[-22.4,0,6.3],"rotation":0},{"asset":"canal-town-and-windmill-town-hitching-post-28eb6d39","position":[-2.2,0,6.3],"rotation":0},{"asset":"canal-town-and-windmill-town-hitching-post-28eb6d39","position":[12.4,0,6.3],"rotation":0},{"asset":"canal-town-and-windmill-tulip-trough-8346114c","position":[-14,0,10.1],"rotation":16},{"asset":"canal-town-and-windmill-tulip-trough-8346114c","position":[1.77,0,7.5],"rotation":-8},{"asset":"canal-town-and-windmill-tulip-trough-8346114c","position":[13.77,0,7.5],"rotation":4},{"asset":"canal-town-and-windmill-tulip-trough-8346114c","position":[-22.4,0,7.4],"rotation":20},{"asset":"canal-town-and-windmill-flower-bulb-crate-9acc548e","position":[-2.2,0,7.3],"rotation":52},{"asset":"canal-town-and-windmill-dairy-butter-churn-ca51f19e","position":[-13.89,0,7.19],"rotation":28},{"asset":"canal-town-and-windmill-cheese-stack-on-board-bc1cf9a0","position":[20.6,0,6.7],"rotation":-12},{"asset":"canal-town-and-windmill-quayside-packing-crates-3199787b","position":[-8.6,0,6.8],"rotation":-36},{"asset":"canal-town-and-windmill-quayside-packing-crates-3199787b","position":[10.57,0,7.3],"rotation":40},{"asset":"canal-town-and-windmill-quayside-oak-barrels-331e1518","position":[7.4,0,10.8],"rotation":-20},{"asset":"canal-town-and-windmill-quayside-oak-barrels-331e1518","position":[-9.2,0,10.9],"rotation":25},{"asset":"canal-town-and-windmill-delivery-bicycle-13493bc2","position":[15.6,0,10.85],"rotation":-150},{"asset":"canal-town-and-windmill-yard-wheelbarrow-99feba61","position":[-1.6,0,10.85],"rotation":40},{"asset":"canal-town-and-windmill-street-water-pump-cb57e753","position":[5.2,0,10.4],"rotation":0},{"asset":"canal-town-and-windmill-town-signpost-blank-boards-5e143417","position":[10.83,0,10.63],"rotation":180},{"asset":"canal-town-and-windmill-yard-clothes-line-frame-22d7a120","position":[-25.3,0,11.23],"rotation":6},{"asset":"canal-town-and-windmill-yard-clothes-line-frame-22d7a120","position":[25.39,0,11.46],"rotation":-6},{"asset":"canal-town-and-windmill-yard-broom-4b22ca03","position":[23.17,0,7.3],"rotation":-100},{"asset":"canal-town-and-windmill-flower-bulb-crate-9acc548e","position":[18.4,0,7.2],"rotation":-25},{"asset":"canal-town-and-windmill-mill-grain-sacks-5b7598bd","position":[21.4,0,10.6],"rotation":-20}],"points":[{"position":[-14.5,0,-8.8],"title":"The mill gear, out in the yard","text":"The tower is sealed, so its working parts stand out here where you can walk round them: the millstones and tun turning in their case, the grain hopper and chute, the sacks and the flour cart.","asset":"canal-town-and-windmill-mill-millstones-and-tun-cd6f8efc"},{"position":[-18.5,0,-5.6],"title":"Sail cross and cap","text":"Four sails turn on the cross, and the cap and tail pole rotate to bring them round to the wind. The hoist beam over the door lifts sacks to the stage.","asset":"canal-town-and-windmill-mill-sail-cross-409ea4d1"},{"position":[-16.5,0,5.4],"title":"The drawbridge","text":"A counterweighted beam lifts the deck clear so a mast can pass. Stand under it as it swings.","asset":"canal-town-and-windmill-canal-drawbridge-3c317687"},{"position":[21.5,0,-5.2],"title":"The lock gates","text":"A mitred pair swings open across the cut at the east end of the town, past the humpback bridge. The canal itself is water plane modules laid into the paving, so it keeps a flat surface at any length.","asset":"canal-town-and-windmill-canal-lock-gate-pair-3b0b9277"},{"position":[-9.5,0,-5.7],"title":"The working quay","text":"The crane post slews its jib over the barge moored alongside. Fender piles take the hull, and packing crates and barrels wait on the setts behind.","asset":"canal-town-and-windmill-canal-quay-crane-fbb483b8"},{"position":[0,0,6],"title":"The gable terrace","text":"Stepped and bell gables in three widths, party walled into one run, with pantile roofs, dormers and chimney stacks. Every door and shutter opens.","asset":"canal-town-and-windmill-canal-house-front-bell-gable-950e4b1c"},{"position":[13,0,-6],"title":"Market on the wide quay","text":"Awninged stalls with cheese boards, a butter churn, barrels, bulb crates and tulip troughs, worked by a handcart and a delivery bicycle.","asset":"canal-town-and-windmill-market-stall-with-awning-a330661e"},{"position":[17.5,0,-4.2],"title":"The humpback bridge","text":"A stone arch carries the street over the cut at the east end. From the crown you can see the whole run of water, the terrace and the mill at the far end.","asset":"canal-town-and-windmill-canal-humpback-bridge-9590734c"}],"poster":{"position":[6,1.85,4.6],"lookAt":[-16,4.6,0.5]}},"bounds":{"min":[-27,0,-17],"max":[27,20,16.5]},"assets":[{"id":"36651","slug":"canal-town-and-windmill-canal-water-module-4a9bd252","title":"Canal Water Module (Canal Town and Windmill)","summary":"Free 3D model of a canal water tile for a historical canal town game asset kit: 4 m square dark green surface with low swells, ports on all four edges.","description":"Free 3D model of a canal water tile for a historical canal town game asset kit: 4 m square dark green surface with low swells, ports on all four edges. Dimensions 4.00 by 0.91 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: north (water) at (0.00, 0.90, 2.00) facing (0, 0, 1); south (water) at (0.00, 0.90, -2.00) facing (0, 0, -1); east (water) at (2.00, 0.90, 0.00) facing (1, 0, 0); west (water) at (-2.00, 0.90, 0.00) facing (-1, 0, 0). Water module, 4 m square and 0.90 m deep, so its surface sits 0.30 m below the coping of the quay module. Lay it into the ground between quay runs rather than leaving a hole. The surface is fixed geometry: moving water needs a shader or a vertex animation, and this pack ships neither. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-water-module-4a9bd252","cdnUrl":"https://cdn.3dassets.dev/assets/36651/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-water-module-4a9bd252","thumbnailUrl":"https://cdn.3dassets.dev/assets/36651/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36651/v1/poster.webp","blurhash":"U48}xp.m00NF?bV@M{tR00H?-=a14mo~ogMx","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18292,"triangles":864,"vertices":745,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-2,-0.0000803027819658575,-2],"max":[2,0.9110803161334062,2]},"sizeMeters":[4,0.911,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:01.153Z","updatedAt":"2026-09-11T22:15:01.277Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36651/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalWaterModuleCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36651/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36651/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36651/v1/model.glb\" alt=\"Canal Water Module (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36651/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36651/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36649","slug":"canal-town-and-windmill-canal-quay-edge-7ff35b35","title":"Canal Quay Edge (Canal Town and Windmill)","summary":"Free 3D model of a brick canal quay edge with mooring rings and a bollard for a historical canal town kit: 4 m module with a stone coping.","description":"Free 3D model of a brick canal quay edge with mooring rings and a bollard for a historical canal town kit: 4 m module with a stone coping. Dimensions 4.07 by 1.80 by 0.92 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: left (quay) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (quay) at (2.00, 0.00, 0.00) facing (1, 0, 0); water (water) at (0.00, 0.90, 0.45) facing (0, 0, 1). Quay module, 4 m long and 1.20 m from coping to foot, with the water face at +Z. Butt modules end to end on a 4 m pitch and set the water modules against the face. Place it 1.20 m below the street so the coping finishes flush with the cobbles. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-quay-edge-7ff35b35","cdnUrl":"https://cdn.3dassets.dev/assets/36649/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-quay-edge-7ff35b35","thumbnailUrl":"https://cdn.3dassets.dev/assets/36649/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36649/v1/poster.webp","blurhash":"U7C?7Z^*01%LPo~W$*E100AZ?uRPQ84nOYtl","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":72028,"triangles":942,"vertices":908,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2.01200008392334,-0.00002408934988529232,-0.4499570210125644],"max":[2.0616796016693115,1.799923086602407,0.4746845145371158]},"sizeMeters":[4.074,1.8,0.925],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:01.120Z","updatedAt":"2026-09-11T22:15:01.244Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36649/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalQuayEdgeCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36649/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36649/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36649/v1/model.glb\" alt=\"Canal Quay Edge (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36649/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36649/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36652","slug":"canal-town-and-windmill-canal-stepped-landing-8b15cf0f","title":"Canal Stepped Landing (Canal Town and Windmill)","summary":"Free 3D model of a stepped stone canal landing for a historical canal town kit: seven treads down the quay face into the water, iron handrails and a mooring ring.","description":"Free 3D model of a stepped stone canal landing for a historical canal town kit: seven treads down the quay face into the water, iron handrails and a mooring ring. Dimensions 4.02 by 2.17 by 1.67 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: left (quay) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (quay) at (2.00, 0.00, 0.00) facing (1, 0, 0). Quay module on the same 4 m pitch as the plain quay edge, so it drops into a run in place of one. The treads walk down 1.12 m to a foot that finishes under the water surface. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-stepped-landing-8b15cf0f","cdnUrl":"https://cdn.3dassets.dev/assets/36652/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-stepped-landing-8b15cf0f","thumbnailUrl":"https://cdn.3dassets.dev/assets/36652/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36652/v1/poster.webp","blurhash":"U7CPnupJ008{00-U.8V@00M{^+-;~qENH?bI","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":92712,"triangles":1764,"vertices":1683,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2.01200008392334,-0.00010027237711496273,-0.47004743184433084],"max":[2.01200008392334,2.1741950511423043,1.2000474807201396]},"sizeMeters":[4.024,2.174,1.67],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:01.209Z","updatedAt":"2026-09-11T22:15:01.312Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36652/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalSteppedLandingCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36652/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36652/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36652/v1/model.glb\" alt=\"Canal Stepped Landing (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36652/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36652/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36655","slug":"canal-town-and-windmill-canal-drawbridge-3c317687","title":"Canal Drawbridge (Canal Town and Windmill)","summary":"Free 3D model of a flat drawbridge with a counterweight beam for a historical canal town kit: the leaf lifts and the weighted balance beam swings with it.","description":"Free 3D model of a flat drawbridge with a counterweight beam for a historical canal town kit: the leaf lifts and the weighted balance beam swings with it. Dimensions 3.90 by 4.87 by 7.89 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: beam-counterweight at (0.00, 4.66, -1.32) m; deck-leaf at (0.00, 0.94, 0.12) m. Bank mounted lifting bridge, 4.60 m of leaf over the water on a 3.20 m carriageway, with the frame head at 4.60 m. The leaf and the balance beam are separate nodes on one open and close pair; the hanging rods swing with the beam because a rod pivoted at both ends is a linkage and one rigid node transform cannot give it. Place it with the hinge on the quay coping. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-drawbridge-3c317687","cdnUrl":"https://cdn.3dassets.dev/assets/36655/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-drawbridge-3c317687","thumbnailUrl":"https://cdn.3dassets.dev/assets/36655/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36655/v1/poster.webp","blurhash":"U77_4fH?9ax[T{M{rYae0MS4#,t8}At3Egx]","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":228308,"triangles":6420,"vertices":5542,"meshes":9,"materials":5,"textures":3,"animations":["open","close"],"boundingBox":{"min":[-1.9500009586395814,0,-3.0902216475461843],"max":[1.9500009586395814,4.871872719107917,4.800000305175781]},"sizeMeters":[3.9,4.872,7.89],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:04.246Z","updatedAt":"2026-09-11T22:15:04.365Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36655/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalDrawbridgeCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36655/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36655/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36655/v1/model.glb\" alt=\"Canal Drawbridge (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36655/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36655/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36654","slug":"canal-town-and-windmill-canal-lock-gate-pair-3b0b9277","title":"Canal Lock Gate Pair (Canal Town and Windmill)","summary":"Free 3D model of a mitred canal lock gate pair for a historical waterway kit: two planked oak leaves on heel posts with balance beams, both swinging.","description":"Free 3D model of a mitred canal lock gate pair for a historical waterway kit: two planked oak leaves on heel posts with balance beams, both swinging. Dimensions 11.76 by 3.78 by 3.30 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: gate-left at (-2.51, 0.00, 0.00) m; gate-right at (2.51, 0.00, 0.00) m. A lock head 4.70 m between heel posts, with stone side walls and copings, the leaves 3.20 m tall. Each leaf and its balance beam is one node swinging about its own heel post, so the pair mitres shut and opens out. The paddle gear and the chains are modelled solid and do not move. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-lock-gate-pair-3b0b9277","cdnUrl":"https://cdn.3dassets.dev/assets/36654/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-lock-gate-pair-3b0b9277","thumbnailUrl":"https://cdn.3dassets.dev/assets/36654/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36654/v1/poster.webp","blurhash":"U39Z}[?G00%#?a^+n,0000Rj~V8_9F9FNG_2","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":127052,"triangles":3104,"vertices":2712,"meshes":5,"materials":3,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-5.880000123977661,-0.00002960585425726414,-1.6500778434645265],"max":[5.880000123977661,3.780029648769604,1.6500778434645265]},"sizeMeters":[11.76,3.78,3.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:04.120Z","updatedAt":"2026-09-11T22:15:04.227Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36654/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalLockGatePairCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36654/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36654/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36654/v1/model.glb\" alt=\"Canal Lock Gate Pair (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36654/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36654/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36650","slug":"canal-town-and-windmill-canal-humpback-bridge-9590734c","title":"Canal Humpback Bridge (Canal Town and Windmill)","summary":"Free 3D model of a humpback brick canal bridge for a historical canal town kit: 10 m segmental arch with a stone voussoir ring, cobbled deck and brick parapets.","description":"Free 3D model of a humpback brick canal bridge for a historical canal town kit: 10 m segmental arch with a stone voussoir ring, cobbled deck and brick parapets. Dimensions 10.80 by 4.17 by 3.40 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Road bridge spanning 10.40 m with a 1.90 m rise, 3.40 m wide between parapets, and abutments that reach the canal bed. Lay it across two water modules with its abutments on the quay runs. Static model with no moving parts. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-humpback-bridge-9590734c","cdnUrl":"https://cdn.3dassets.dev/assets/36650/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-humpback-bridge-9590734c","thumbnailUrl":"https://cdn.3dassets.dev/assets/36650/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36650/v1/poster.webp","blurhash":"U4Cr+lQn00?vL2~BMdEf00Gt^+Q-QR0L%#aK","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":334364,"triangles":12108,"vertices":10628,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-5.400000095367432,-0.0001177567749088837,-1.7002411262521986],"max":[5.400000095367432,4.1652691727915405,1.7002411262521986]},"sizeMeters":[10.8,4.165,3.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:01.133Z","updatedAt":"2026-09-11T22:15:01.259Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36650/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalHumpbackBridgeCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36650/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36650/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36650/v1/model.glb\" alt=\"Canal Humpback Bridge (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36650/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36650/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36676","slug":"canal-town-and-windmill-cobbled-street-module-79614337","title":"Cobbled Street Module (Canal Town and Windmill)","summary":"Free 3D model of a cobbled street tile for a historical canal town kit: 4 m square of sunk granite setts on a bedding slab with a gutter channel.","description":"Free 3D model of a cobbled street tile for a historical canal town kit: 4 m square of sunk granite setts on a bedding slab with a gutter channel. Dimensions 4.00 by 0.13 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: north (ground) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (ground) at (0.00, 0.00, -2.00) facing (0, 0, -1); east (ground) at (2.00, 0.00, 0.00) facing (1, 0, 0); west (ground) at (-2.00, 0.00, 0.00) facing (-1, 0, 0). Ground module 4 m square and 0.125 m thick, with ports on all four edges on a 4 m pitch. Lay it at minus 0.125 m so the sett tops finish level with the surrounding ground. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-cobbled-street-module-79614337","cdnUrl":"https://cdn.3dassets.dev/assets/36676/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-cobbled-street-module-79614337","thumbnailUrl":"https://cdn.3dassets.dev/assets/36676/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36676/v1/poster.webp","blurhash":"U5BpkL%N00of%MWBRjoL00IU~pRj9Fxts:R*","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":105024,"triangles":1140,"vertices":2502,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-2,0.00009172403588120215,-2],"max":[2,0.13290827727542098,2]},"sizeMeters":[4,0.133,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:18.905Z","updatedAt":"2026-09-11T22:15:19.002Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36676/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CobbledStreetModuleCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36676/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36676/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36676/v1/model.glb\" alt=\"Cobbled Street Module (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36676/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36676/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36667","slug":"canal-town-and-windmill-canal-house-corner-block-2b7f1aa4","title":"Canal House Corner Block (Canal Town and Windmill)","summary":"Free 3D model of a corner canal house for a historical town kit: stepped gable front with a 4 m return wall down the side street and a wall lantern on the corner.","description":"Free 3D model of a corner canal house for a historical town kit: stepped gable front with a 4 m return wall down the side street and a wall lantern on the corner. Dimensions 5.30 by 8.97 by 4.80 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door at (-1.68, -0.00, 0.34) m; shutter-c-left at (-1.67, 4.00, 0.36) m; shutter-c-right at (-0.53, 4.00, 0.36) m; shutter-d-left at (0.53, 4.00, 0.36) m; shutter-d-right at (1.67, 4.00, 0.36) m. Connectors: left (front) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Corner module: the front is 4.00 m wide on the terrace wall head of 6.80 m and the return runs 4.00 m back along +X. Butt a terrace onto its left port. The door and the first floor shutters swing; the lantern is fixed and carries no light source. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: door-open, door-close, shutter-open and shutter-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-house-corner-block-2b7f1aa4","cdnUrl":"https://cdn.3dassets.dev/assets/36667/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-house-corner-block-2b7f1aa4","thumbnailUrl":"https://cdn.3dassets.dev/assets/36667/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36667/v1/poster.webp","blurhash":"U3A,Rb~q000000r=^+Xn01Ip}@ac0KS~_3rD","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":296932,"triangles":8924,"vertices":10236,"meshes":16,"materials":7,"textures":3,"animations":["door-open","door-close","shutter-open","shutter-close"],"boundingBox":{"min":[-2.0803193814165044,0,-4.355319446981614],"max":[3.2200000286102295,8.973333358764648,0.44531942075556996]},"sizeMeters":[5.3,8.973,4.801],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:13.184Z","updatedAt":"2026-09-11T22:15:13.323Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36667/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalHouseCornerBlockCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36667/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36667/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36667/v1/model.glb\" alt=\"Canal House Corner Block (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36667/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36667/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36669","slug":"canal-town-and-windmill-pantile-roof-slope-9f4556b8","title":"Pantile Roof Slope (Canal Town and Windmill)","summary":"Free 3D model of a pantile roof slope module for a historical canal town kit: 4 m of rolled clay pantiles on boarded rafters at 45 degrees, with a painted fascia.","description":"Free 3D model of a pantile roof slope module for a historical canal town kit: 4 m of rolled clay pantiles on boarded rafters at 45 degrees, with a painted fascia. Dimensions 4.12 by 2.87 by 2.83 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: eave (roof) at (0.00, 0.00, 0.00) facing (0, 0, 1); ridge (ridge) at (0.00, 2.60, -2.60) facing (0, 1, 0); left (roof-edge) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (roof-edge) at (2.00, 0.00, 0.00) facing (1, 0, 0). Roof module 4.00 m across and 2.60 m of run at 45 degrees, so it rises 2.60 m from eave to ridge. The origin is at the eave on the outside face: seat it on a front or wall module head port and meet a ridge cap at the top. Slopes also butt side to side on a 4 m pitch. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-pantile-roof-slope-9f4556b8","cdnUrl":"https://cdn.3dassets.dev/assets/36669/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-pantile-roof-slope-9f4556b8","thumbnailUrl":"https://cdn.3dassets.dev/assets/36669/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36669/v1/poster.webp","blurhash":"U7D[qW-.00R%}?IVENNH00Ip$jR*NZ^jJ8ae","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64316,"triangles":1332,"vertices":1685,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-2.059999942779541,-0.00009573337618262734,-2.6516937380004304],"max":[2.059999942779541,2.8722639871761144,0.18008606228511312]},"sizeMeters":[4.12,2.872,2.832],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:15.255Z","updatedAt":"2026-09-11T22:15:15.360Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36669/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PantileRoofSlopeCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36669/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36669/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36669/v1/model.glb\" alt=\"Pantile Roof Slope (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36669/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36669/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36670","slug":"canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","title":"Pantile Ridge Cap (Canal Town and Windmill)","summary":"Free 3D model of a pantile ridge cap module for a historical canal town kit: 4 m of half round ridge tiles on a bedding timber.","description":"Free 3D model of a pantile ridge cap module for a historical canal town kit: 4 m of half round ridge tiles on a bedding timber. Dimensions 4.11 by 0.35 by 0.35 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: ridge (ridge) at (0.00, 0.00, 0.00) facing (0, 1, 0); left (ridge-run) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (ridge-run) at (2.00, 0.00, 0.00) facing (1, 0, 0). Roof module 4.00 m long, laid along the ridge where two slopes meet. The origin sits on the ridge line, so place it at the height the slope ridge ports reach. Caps butt end to end on a 4 m pitch. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","cdnUrl":"https://cdn.3dassets.dev/assets/36670/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-pantile-ridge-cap-ddaa8e22","thumbnailUrl":"https://cdn.3dassets.dev/assets/36670/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36670/v1/poster.webp","blurhash":"U48WW{$*E3-V={}@xGWE01%1}@NG570Ls:-n","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38160,"triangles":396,"vertices":758,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-2.053333282470703,-0.000060427989866981835,-0.1739571273579721],"max":[2.053333282470703,0.3539571277584408,0.1739571273579721]},"sizeMeters":[4.107,0.354,0.348],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:15.596Z","updatedAt":"2026-09-11T22:15:15.692Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36670/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PantileRidgeCapCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36670/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36670/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36670/v1/model.glb\" alt=\"Pantile Ridge Cap (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36670/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36670/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36668","slug":"canal-town-and-windmill-town-party-wall-run-092848b7","title":"Town Party Wall Run (Canal Town and Windmill)","summary":"Free 3D model of a blank brick party wall run for a historical canal town kit: 4 m module with small lights and a stone coped head.","description":"Free 3D model of a blank brick party wall run for a historical canal town kit: 4 m module with small lights and a stone coped head. Dimensions 4.16 by 7.20 by 0.82 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: left (front) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (front) at (2.00, 0.00, 0.00) facing (1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Wall module 4.00 m long, 0.55 m thick and 6.80 m to the head, on the same grid as the house fronts. Use it to close the back or the flank of a block, or as a plain neighbour in a terrace. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-town-party-wall-run-092848b7","cdnUrl":"https://cdn.3dassets.dev/assets/36668/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-town-party-wall-run-092848b7","thumbnailUrl":"https://cdn.3dassets.dev/assets/36668/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36668/v1/poster.webp","blurhash":"U2BW0w}[000e_3-oRP4;8cEhzU=_t8?bWT00","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":118544,"triangles":2088,"vertices":2636,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-2.080214795199837,0,-0.37502227122631515],"max":[2.080214795199837,7.199999809265137,0.4450222640737578]},"sizeMeters":[4.16,7.2,0.82],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:12.648Z","updatedAt":"2026-09-11T22:15:12.754Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36668/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TownPartyWallRunCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36668/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36668/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36668/v1/model.glb\" alt=\"Town Party Wall Run (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36668/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36668/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36662","slug":"canal-town-and-windmill-canal-house-front-medium-71ffaaf9","title":"Canal House Front Medium (Canal Town and Windmill)","summary":"Free 3D model of a stepped gable canal house front for a historical town game asset kit: 4.2 m brick facade with a hoist beam, panelled door and working shutters.","description":"Free 3D model of a stepped gable canal house front for a historical town game asset kit: 4.2 m brick facade with a hoist beam, panelled door and working shutters. Dimensions 4.16 by 9.10 by 1.39 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door at (-1.73, -0.00, 0.34) m; shutter-0-left at (-1.62, 3.90, 0.36) m; shutter-0-right at (-0.38, 3.90, 0.36) m; shutter-1-left at (0.38, 3.90, 0.36) m; shutter-1-right at (1.62, 3.90, 0.36) m. Connectors: left (front) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (front) at (2.00, 0.00, 0.00) facing (1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Facade module 4.00 m wide, 0.55 m deep and 6.80 m to the wall head, with the street face at +Z. Butt fronts side to side on their edge ports and seat a roof slope on the head port at the back. Openings are glazed and boarded behind their frames rather than cut through. The door and the first floor shutters swing; the gable hoist beam is fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: door-open, door-close, shutter-open and shutter-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-house-front-medium-71ffaaf9","cdnUrl":"https://cdn.3dassets.dev/assets/36662/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-house-front-medium-71ffaaf9","thumbnailUrl":"https://cdn.3dassets.dev/assets/36662/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36662/v1/poster.webp","blurhash":"U4AT1Y-o004:qvwfcEEz0z9u=w~BC5Y4#mUw","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":197864,"triangles":5992,"vertices":6084,"meshes":16,"materials":7,"textures":3,"animations":["door-open","door-close","shutter-open","shutter-close"],"boundingBox":{"min":[-2.079774779294355,0,-0.36475437145350376],"max":[2.079774779294355,9.100000381469727,1.024999976158142]},"sizeMeters":[4.16,9.1,1.39],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:09.842Z","updatedAt":"2026-09-11T22:15:09.938Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36662/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalHouseFrontMediumCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36662/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36662/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36662/v1/model.glb\" alt=\"Canal House Front Medium (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36662/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36662/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36661","slug":"canal-town-and-windmill-canal-house-front-narrow-7e9216de","title":"Canal House Front Narrow (Canal Town and Windmill)","summary":"Free 3D model of a narrow stepped gable canal house front for a historical town game asset kit: brick facade, panelled door and shutters that open.","description":"Free 3D model of a narrow stepped gable canal house front for a historical town game asset kit: brick facade, panelled door and shutters that open. Dimensions 3.16 by 9.10 by 1.39 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door at (-1.23, -0.00, 0.34) m; shutter-0-left at (-0.62, 3.90, 0.36) m; shutter-0-right at (0.62, 3.90, 0.36) m. Connectors: left (front) at (-1.50, 0.00, 0.00) facing (-1, 0, 0); right (front) at (1.50, 0.00, 0.00) facing (1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Facade module 3.00 m wide, 0.55 m deep and 6.80 m to the wall head, with the street face at +Z. Butt fronts side to side on their edge ports and seat a roof slope on the head port at the back. Openings are glazed and boarded behind their frames rather than cut through. The door and the first floor shutters swing; the gable hoist beam is fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: door-open, door-close, shutter-open and shutter-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-house-front-narrow-7e9216de","cdnUrl":"https://cdn.3dassets.dev/assets/36661/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-house-front-narrow-7e9216de","thumbnailUrl":"https://cdn.3dassets.dev/assets/36661/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36661/v1/poster.webp","blurhash":"U39jGv?a0001UvnNlTPA0ME1}@~CPApI#lMI","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":180636,"triangles":4492,"vertices":4489,"meshes":12,"materials":7,"textures":3,"animations":["door-open","door-close","shutter-open","shutter-close"],"boundingBox":{"min":[-1.5797196411033623,0,-0.36475437145350376],"max":[1.5797196411033623,9.100000381469727,1.024999976158142]},"sizeMeters":[3.159,9.1,1.39],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:09.639Z","updatedAt":"2026-09-11T22:15:09.823Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36661/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalHouseFrontNarrowCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36661/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36661/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36661/v1/model.glb\" alt=\"Canal House Front Narrow (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36661/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36661/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36663","slug":"canal-town-and-windmill-canal-house-front-wide-bef69b8b","title":"Canal House Front Wide (Canal Town and Windmill)","summary":"Free 3D model of a wide stepped gable canal house front for a historical town game asset kit: 5.2 m brick facade, tall ground floor window and working shutters.","description":"Free 3D model of a wide stepped gable canal house front for a historical town game asset kit: 5.2 m brick facade, tall ground floor window and working shutters. Dimensions 5.16 by 9.39 by 1.39 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door at (-2.23, -0.00, 0.34) m; shutter-0-left at (-1.87, 3.90, 0.36) m; shutter-0-right at (-0.63, 3.90, 0.36) m; shutter-1-left at (0.63, 3.90, 0.36) m; shutter-1-right at (1.87, 3.90, 0.36) m. Connectors: left (front) at (-2.50, 0.00, 0.00) facing (-1, 0, 0); right (front) at (2.50, 0.00, 0.00) facing (1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Facade module 5.00 m wide, 0.55 m deep and 6.80 m to the wall head, with the street face at +Z. Butt fronts side to side on their edge ports and seat a roof slope on the head port at the back. Openings are glazed and boarded behind their frames rather than cut through. The door and the first floor shutters swing; the gable hoist beam is fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: door-open, door-close, shutter-open and shutter-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-house-front-wide-bef69b8b","cdnUrl":"https://cdn.3dassets.dev/assets/36663/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-house-front-wide-bef69b8b","thumbnailUrl":"https://cdn.3dassets.dev/assets/36663/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36663/v1/poster.webp","blurhash":"U2AA2R.8008w-V?HK40K0ME1}W?b0yIp#S$j","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":205392,"triangles":6316,"vertices":6364,"meshes":16,"materials":7,"textures":3,"animations":["door-open","door-close","shutter-open","shutter-close"],"boundingBox":{"min":[-2.5799790365591835,0,-0.3652082970861288],"max":[2.5799790365591835,9.390000343322754,1.024999976158142]},"sizeMeters":[5.16,9.39,1.39],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:10.203Z","updatedAt":"2026-09-11T22:15:10.424Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36663/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalHouseFrontWideCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36663/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36663/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36663/v1/model.glb\" alt=\"Canal House Front Wide (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36663/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36663/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36664","slug":"canal-town-and-windmill-canal-house-front-bell-gable-950e4b1c","title":"Canal House Front Bell Gable (Canal Town and Windmill)","summary":"Free 3D model of a bell gable canal house front for a historical town game asset kit: curved brick gable with stone scrolls, a blank gable stone and working shutters.","description":"Free 3D model of a bell gable canal house front for a historical town game asset kit: curved brick gable with stone scrolls, a blank gable stone and working shutters. Dimensions 4.16 by 9.34 by 0.81 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door at (-1.70, -0.00, 0.34) m; shutter-a-left at (-1.40, 3.95, 0.36) m; shutter-a-right at (-0.30, 3.95, 0.36) m; shutter-b-left at (0.30, 3.95, 0.36) m; shutter-b-right at (1.40, 3.95, 0.36) m. Connectors: left (front) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (front) at (2.00, 0.00, 0.00) facing (1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Facade module 4.00 m wide on the same 6.80 m wall head as the stepped gable fronts, so the two mix in one terrace. The gable stone carries invented abstract shapes and no lettering. The door and the first floor shutters swing. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: door-open, door-close, shutter-open and shutter-close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-house-front-bell-gable-950e4b1c","cdnUrl":"https://cdn.3dassets.dev/assets/36664/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-house-front-bell-gable-950e4b1c","thumbnailUrl":"https://cdn.3dassets.dev/assets/36664/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36664/v1/poster.webp","blurhash":"U19%bc?]0000vO,[Ki1G1NIU[n?b1G%g=K8w","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":227100,"triangles":7232,"vertices":7186,"meshes":15,"materials":7,"textures":3,"animations":["door-open","door-close","shutter-open","shutter-close"],"boundingBox":{"min":[-2.079815396995683,0,-0.3647608875343368],"max":[2.079815396995683,9.34000015258789,0.4447609006473586]},"sizeMeters":[4.16,9.34,0.81],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:10.200Z","updatedAt":"2026-09-11T22:15:10.404Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36664/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalHouseFrontBellGableCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36664/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36664/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36664/v1/model.glb\" alt=\"Canal House Front Bell Gable (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36664/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36664/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36672","slug":"canal-town-and-windmill-town-chimney-stack-bb7ad8be","title":"Town Chimney Stack (Canal Town and Windmill)","summary":"Free 3D model of a brick chimney stack with clay pots for a historical canal town roof kit: corbelled head, stone weathering and two pots.","description":"Free 3D model of a brick chimney stack with clay pots for a historical canal town roof kit: corbelled head, stone weathering and two pots. Dimensions 1.34 by 3.40 by 0.98 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Chimney 1.34 m by 0.98 m and 3.40 m tall from its base, so it stands clear of a 45 degree roof when set on the ridge line. Static model; the smoke a working chimney would carry is not modelled, because smoke is a particle effect rather than geometry. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-town-chimney-stack-bb7ad8be","cdnUrl":"https://cdn.3dassets.dev/assets/36672/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-town-chimney-stack-bb7ad8be","thumbnailUrl":"https://cdn.3dassets.dev/assets/36672/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36672/v1/poster.webp","blurhash":"U49~{M}[000L.8ozMxnO0|J7={-AIAWBtRWX","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71824,"triangles":720,"vertices":678,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-0.6700000166893005,0,-0.48996064332740313],"max":[0.6700000166893005,3.3999837560838793,0.48996064332740313]},"sizeMeters":[1.34,3.4,0.98],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:16.113Z","updatedAt":"2026-09-11T22:15:16.229Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36672/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TownChimneyStackCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36672/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36672/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36672/v1/model.glb\" alt=\"Town Chimney Stack (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36672/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36672/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36671","slug":"canal-town-and-windmill-pantile-dormer-window-c219ac17","title":"Pantile Dormer Window (Canal Town and Windmill)","summary":"Free 3D model of a boarded dormer window for a historical canal town roof kit: shuttered light, weatherboarded cheeks and a tiled gable roof.","description":"Free 3D model of a boarded dormer window for a historical canal town roof kit: shuttered light, weatherboarded cheeks and a tiled gable roof. Dimensions 1.90 by 2.23 by 1.36 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: shutter-dormer-left at (-0.56, 1.00, 0.67) m; shutter-dormer-right at (0.56, 1.00, 0.67) m. Dormer 1.78 m wide and 2.23 m tall, with its origin at the base of the cheeks so it sits on a roof slope where it is pushed through. The shutters swing; everything else is fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-pantile-dormer-window-c219ac17","cdnUrl":"https://cdn.3dassets.dev/assets/36671/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-pantile-dormer-window-c219ac17","thumbnailUrl":"https://cdn.3dassets.dev/assets/36671/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36671/v1/poster.webp","blurhash":"U7A+?EFf00vz~Cay9abZ4:wIxuOr5Qxa$%RP","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":116784,"triangles":2264,"vertices":2107,"meshes":9,"materials":6,"textures":3,"animations":["open","close"],"boundingBox":{"min":[-0.9508206248283386,0,-0.640034991220628],"max":[0.9508206248283386,2.23001850382047,0.7174860211124314]},"sizeMeters":[1.902,2.23,1.358],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:15.614Z","updatedAt":"2026-09-11T22:15:15.730Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36671/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PantileDormerWindowCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36671/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36671/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36671/v1/model.glb\" alt=\"Pantile Dormer Window (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36671/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36671/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36665","slug":"canal-town-and-windmill-warehouse-front-with-hoist-afaa53f4","title":"Warehouse Front With Hoist (Canal Town and Windmill)","summary":"Free 3D model of a canal warehouse front with a gable hoist for a historical town kit: three tiers of loading shutters that open, a stepped gable and a sheave beam.","description":"Free 3D model of a canal warehouse front with a gable hoist for a historical town kit: three tiers of loading shutters that open, a stepped gable and a sheave beam. Dimensions 5.16 by 9.19 by 1.99 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: shutter-0-left at (-0.86, 1.45, 0.36) m; shutter-0-right at (0.86, 1.45, 0.36) m; shutter-1-left at (-0.86, 3.80, 0.36) m; shutter-1-right at (0.86, 3.80, 0.36) m; shutter-2-left at (-0.86, 5.90, 0.36) m; shutter-2-right at (0.86, 5.90, 0.36) m. Connectors: left (front) at (-2.50, 0.00, 0.00) facing (-1, 0, 0); right (front) at (2.50, 0.00, 0.00) facing (1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Facade module 5.00 m wide on the terrace wall head of 6.80 m. All six loading shutters swing on their jambs as one system; the hoist beam, the sheave and the rope are fixed, because a rope is flexible and one rigid node transform cannot pay it out. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-warehouse-front-with-hoist-afaa53f4","cdnUrl":"https://cdn.3dassets.dev/assets/36665/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-warehouse-front-with-hoist-afaa53f4","thumbnailUrl":"https://cdn.3dassets.dev/assets/36665/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36665/v1/poster.webp","blurhash":"U29Z.fF000]+$j%29[9Z00RP~Vx]S~xurXD%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":211604,"triangles":7312,"vertices":7368,"meshes":18,"materials":6,"textures":3,"animations":["open","close"],"boundingBox":{"min":[-2.5799983562714313,0,-0.36499158236140916],"max":[2.5799983562714313,9.1899995803833,1.625133376871768]},"sizeMeters":[5.16,9.19,1.99],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:12.509Z","updatedAt":"2026-09-11T22:15:12.602Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36665/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WarehouseFrontWithHoistCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36665/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36665/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36665/v1/model.glb\" alt=\"Warehouse Front With Hoist (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36665/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36665/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36666","slug":"canal-town-and-windmill-shopfront-bay-front-95289f9b","title":"Shopfront Bay Front (Canal Town and Windmill)","summary":"Free 3D model of a canal town shopfront with a glazed bay and awning for a historical street kit: painted shop bay, blank hanging sign and a stepped gable over it.","description":"Free 3D model of a canal town shopfront with a glazed bay and awning for a historical street kit: painted shop bay, blank hanging sign and a stepped gable over it. Dimensions 4.16 by 8.89 by 2.17 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door at (0.83, -0.00, 0.34) m. Connectors: left (front) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); right (front) at (2.00, 0.00, 0.00) facing (1, 0, 0); roof (roof) at (0.00, 6.80, -0.28) facing (0, 1, 0). Facade module 4.00 m wide on the terrace wall head of 6.80 m, with the shop bay standing 0.90 m out from the wall. The street door swings. The awning is a spread canvas on a rigid frame and does not fold, and the hanging sign and the gable board are blank apart from invented abstract shapes. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-shopfront-bay-front-95289f9b","cdnUrl":"https://cdn.3dassets.dev/assets/36666/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-shopfront-bay-front-95289f9b","thumbnailUrl":"https://cdn.3dassets.dev/assets/36666/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36666/v1/poster.webp","blurhash":"U5AvwmFx00+b%2%19[E10KZ$~C%g-=o}McIA","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":192472,"triangles":4160,"vertices":4732,"meshes":11,"materials":9,"textures":3,"animations":["open","close"],"boundingBox":{"min":[-2.079994739588119,0,-0.36479385654470525],"max":[2.079994739588119,8.890000343322754,1.8050634968497987]},"sizeMeters":[4.16,8.89,2.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:12.619Z","updatedAt":"2026-09-11T22:15:12.724Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36666/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ShopfrontBayFrontCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36666/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36666/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36666/v1/model.glb\" alt=\"Shopfront Bay Front (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36666/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36666/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36638","slug":"canal-town-and-windmill-mill-tower-lower-stage-bb445c4d","title":"Mill Tower Lower Stage (Canal Town and Windmill)","summary":"Free 3D model of a brick tower mill lower stage for a historical canal town game asset kit: battered octagonal body, stone plinth and a lined door reveal.","description":"Free 3D model of a brick tower mill lower stage for a historical canal town game asset kit: battered octagonal body, stone plinth and a lined door reveal. Dimensions 7.12 by 4.22 by 7.12 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: top (tower) at (0.00, 4.20, 0.00) facing (0, 1, 0); door (door) at (0.00, 0.40, 3.02) facing (0, 0, 1). Tower module, 4.20 m to the head, octagonal and battered from 3.30 m to 2.95 m radius. Seat the upper stage on the top port, the stage gallery on the same head, and the entry door unit in the reveal on the front port. The reveal is lined rather than cut through, so the tower stays solid when a scene is lit from outside. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-tower-lower-stage-bb445c4d","cdnUrl":"https://cdn.3dassets.dev/assets/36638/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-tower-lower-stage-bb445c4d","thumbnailUrl":"https://cdn.3dassets.dev/assets/36638/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36638/v1/poster.webp","blurhash":"U4Bo~$~W009t={V@Efoz009Z}YxaNdxa-pV[","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":94912,"triangles":656,"vertices":948,"meshes":5,"materials":5,"textures":3,"animations":[],"boundingBox":{"min":[-3.559999942779541,-0.00012061910029448342,-3.559999942779541],"max":[3.559999942779541,4.220120409291945,3.559999942779541]},"sizeMeters":[7.12,4.22,7.12],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:52.552Z","updatedAt":"2026-09-11T22:14:52.674Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36638/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MillTowerLowerStageCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36638/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36638/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36638/v1/model.glb\" alt=\"Mill Tower Lower Stage (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36638/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36638/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36643","slug":"canal-town-and-windmill-mill-stage-gallery-dbfa36b3","title":"Mill Stage Gallery (Canal Town and Windmill)","summary":"Free 3D model of a windmill stage gallery with railing for a historical tower mill kit: planked octagonal deck on raking brackets, painted handrail.","description":"Free 3D model of a windmill stage gallery with railing for a historical tower mill kit: planked octagonal deck on raking brackets, painted handrail. Dimensions 8.34 by 1.99 by 8.34 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: tower (tower) at (0.00, 0.00, 0.00) facing (0, -1, 0). Ring deck for a tower mill, 7.90 m across with a 5.80 m opening for the tower, and a 1.10 m painted railing. The origin is at deck level on the tower axis, so place it at the lower stage head. The raking brackets under it reach down against the tower batter. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-stage-gallery-dbfa36b3","cdnUrl":"https://cdn.3dassets.dev/assets/36643/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-stage-gallery-dbfa36b3","thumbnailUrl":"https://cdn.3dassets.dev/assets/36643/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36643/v1/poster.webp","blurhash":"U26kCbx[00nOghofixR*00M|~WW?ZgR*k;xZ","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":385252,"triangles":14880,"vertices":13210,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-4.171797752380371,-0.00010310033437521682,-4.171797752380371],"max":[4.171797752380371,1.9868819575308736,4.171797752380371]},"sizeMeters":[8.344,1.987,8.344],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:55.433Z","updatedAt":"2026-09-11T22:14:55.542Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36643/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MillStageGalleryCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36643/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36643/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36643/v1/model.glb\" alt=\"Mill Stage Gallery (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36643/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36643/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36639","slug":"canal-town-and-windmill-mill-tower-upper-stage-9509f5db","title":"Mill Tower Upper Stage (Canal Town and Windmill)","summary":"Free 3D model of a brick tower mill upper stage with a stone curb ring for a historical windmill game asset kit: four glazed lights, battered octagonal body.","description":"Free 3D model of a brick tower mill upper stage with a stone curb ring for a historical windmill game asset kit: four glazed lights, battered octagonal body. Dimensions 5.90 by 3.33 by 5.90 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: base (tower) at (0.00, 0.00, 0.00) facing (0, -1, 0); curb (cap) at (0.00, 3.30, 0.00) facing (0, 1, 0). Tower module, 3.30 m tall, battered from 2.95 m to 2.55 m radius. Stack it on the lower stage base port and seat the cap on the curb ring at the top. The four lights are glazed panels behind their frames rather than openings. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-tower-upper-stage-9509f5db","cdnUrl":"https://cdn.3dassets.dev/assets/36639/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-tower-upper-stage-9509f5db","thumbnailUrl":"https://cdn.3dassets.dev/assets/36639/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36639/v1/poster.webp","blurhash":"U7B{u]?H00D%*0WBH?t600Ip^+xaD4of%$Rj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":91596,"triangles":1000,"vertices":1465,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-2.950000047683716,0.0001174457509709459,-2.950000047683716],"max":[2.950000047683716,3.330152225852009,2.950000047683716]},"sizeMeters":[5.9,3.33,5.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:52.619Z","updatedAt":"2026-09-11T22:14:52.743Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36639/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MillTowerUpperStageCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36639/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36639/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36639/v1/model.glb\" alt=\"Mill Tower Upper Stage (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36639/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36639/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36640","slug":"canal-town-and-windmill-mill-cap-and-tail-pole-b202be11","title":"Mill Cap And Tail Pole (Canal Town and Windmill)","summary":"Free 3D model of a boarded windmill cap with windshaft and tail pole for a historical tower mill kit: the whole cap winds round on its curb as one node.","description":"Free 3D model of a boarded windmill cap with windshaft and tail pole for a historical tower mill kit: the whole cap winds round on its curb as one node. Dimensions 6.36 by 3.10 by 8.75 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cap at (0.00, 0.02, 0.00) m. Connectors: curb (cap) at (0.00, 0.00, 0.00) facing (0, -1, 0); shaft (sail) at (0.00, 1.10, 3.50) facing (0, 0, 1). Seats on the upper stage curb ring; the origin is on the curb at the cap centre. The whole cap, windshaft and tail pole are a single node that turns about the tower axis, which is how a real cap is wound into the wind. Hang the sail cross on the windshaft port. The tail pole rakes down to the curb plane, where this module ends, and the winch rope it would carry is not modelled. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: turn. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-cap-and-tail-pole-b202be11","cdnUrl":"https://cdn.3dassets.dev/assets/36640/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-cap-and-tail-pole-b202be11","thumbnailUrl":"https://cdn.3dassets.dev/assets/36640/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36640/v1/poster.webp","blurhash":"U66Z:%%00#E4Ndazs,j?0#NH}r%0$fo0Nej[","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":110024,"triangles":3318,"vertices":3035,"meshes":3,"materials":3,"textures":1,"animations":["turn"],"boundingBox":{"min":[-3.1804515346782405,0.00018972490459467917,-5.133774280548096],"max":[3.1804515346782405,3.101065066723871,3.6132707595825195]},"sizeMeters":[6.361,3.101,8.747],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:52.602Z","updatedAt":"2026-09-11T22:14:52.728Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36640/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MillCapAndTailPoleCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36640/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36640/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36640/v1/model.glb\" alt=\"Mill Cap And Tail Pole (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36640/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36640/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36637","slug":"canal-town-and-windmill-mill-sail-cross-409ea4d1","title":"Mill Sail Cross (Canal Town and Windmill)","summary":"Free 3D model of a four sail windmill cross for a historical tower mill kit: whip, sail bars and spread cloth on a cast hub, turning as one node.","description":"Free 3D model of a four sail windmill cross for a historical tower mill kit: whip, sail bars and spread cloth on a cast hub, turning as one node. Dimensions 10.40 by 10.40 by 0.83 m (X by Y by Z). Metre units, +Y up, +Z front, free origin as described below. Animated pivot nodes: sail-cross at (0.00, 0.00, 0.00) m. Connectors: shaft (sail) at (0.00, 0.00, -0.25) facing (0, 0, -1). Free origin: the origin is the centre of the hub, which is where the windshaft carries it, so hang it at the cap shaft port rather than on the ground. All four sails and the hub are one node turning about the shaft axis, so the whole cross spins together. The canvas is modelled as a solid spread sheet and never flaps: cloth needs a joint per panel and one rigid node transform cannot give it. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-sail-cross-409ea4d1","cdnUrl":"https://cdn.3dassets.dev/assets/36637/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-sail-cross-409ea4d1","thumbnailUrl":"https://cdn.3dassets.dev/assets/36637/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36637/v1/poster.webp","blurhash":"U98D%{xa00Ipxut7RjM|00R*~Ws.IUIoxu-p","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":215400,"triangles":8364,"vertices":7146,"meshes":4,"materials":4,"textures":2,"animations":["spin"],"boundingBox":{"min":[-5.199999809265137,-5.199999809265137,-0.3799999952316284],"max":[5.199999809265137,5.199999809265137,0.44999998807907104]},"sizeMeters":[10.4,10.4,0.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:52.567Z","updatedAt":"2026-09-11T22:14:52.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36637/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MillSailCrossCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36637/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36637/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36637/v1/model.glb\" alt=\"Mill Sail Cross (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36637/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36637/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36642","slug":"canal-town-and-windmill-mill-entry-door-unit-fb54166e","title":"Mill Entry Door Unit (Canal Town and Windmill)","summary":"Free 3D model of a stone windmill doorway with a hinged plank door for a historical mill kit: jambs, head beam, a step and a blank carved gable stone.","description":"Free 3D model of a stone windmill doorway with a hinged plank door for a historical mill kit: jambs, head beam, a step and a blank carved gable stone. Dimensions 2.02 by 3.65 by 1.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door-mill at (-0.57, -0.00, 0.08) m. Connectors: wall (door) at (0.00, 0.40, -0.12) facing (0, 0, -1). Door unit for the tower reveal: seat its back port against the tower front. The leaf hangs on iron straps on its left jamb and swings out. The gable stone over the head carries invented abstract shapes and no lettering of any kind. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-entry-door-unit-fb54166e","cdnUrl":"https://cdn.3dassets.dev/assets/36642/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-entry-door-unit-fb54166e","thumbnailUrl":"https://cdn.3dassets.dev/assets/36642/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36642/v1/poster.webp","blurhash":"U1B3.[~q00004TM{pbXS8w=|G90eDO?G?v4o","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":97592,"triangles":1864,"vertices":1643,"meshes":4,"materials":4,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-1.0099963641681113,0,-0.2999361674517196],"max":[1.0099963641681113,3.6500000953674316,0.7049361388414901]},"sizeMeters":[2.02,3.65,1.005],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:55.415Z","updatedAt":"2026-09-11T22:14:55.527Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36642/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MillEntryDoorUnitCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36642/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36642/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36642/v1/model.glb\" alt=\"Mill Entry Door Unit (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36642/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36642/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36646","slug":"canal-town-and-windmill-mill-hoist-beam-and-hook-71764b90","title":"Mill Hoist Beam And Hook (Canal Town and Windmill)","summary":"Free 3D model of a mill hoist beam with a pulley and a sack hook for a historical windmill kit: bracketed oak beam, cased sheave, chain and hook that lift.","description":"Free 3D model of a mill hoist beam with a pulley and a sack hook for a historical windmill kit: bracketed oak beam, cased sheave, chain and hook that lift. Dimensions 0.56 by 2.53 by 2.60 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: hoist-hook at (0.00, 1.34, 2.02) m. Wall mounted hoist for a mill stage or a warehouse gable. The chain and hook are one node that lifts 0.38 m, which runs the rope head up inside the pulley casing rather than out of the top of it. The beam, the brackets and the sheave are fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-hoist-beam-and-hook-71764b90","cdnUrl":"https://cdn.3dassets.dev/assets/36646/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-hoist-beam-and-hook-71764b90","thumbnailUrl":"https://cdn.3dassets.dev/assets/36646/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36646/v1/poster.webp","blurhash":"U15NlkSv0N=g}@RO9ux]1NR5]%k=PUEzwd=y","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":47880,"triangles":1204,"vertices":1150,"meshes":4,"materials":3,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.279940183079668,-0.000012805394524306735,-0.3499999940395355],"max":[0.279940183079668,2.5300759922837077,2.25]},"sizeMeters":[0.56,2.53,2.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:58.344Z","updatedAt":"2026-09-11T22:14:58.468Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36646/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MillHoistBeamAndHookCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36646/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36646/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36646/v1/model.glb\" alt=\"Mill Hoist Beam And Hook (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36646/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36646/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36659","slug":"canal-town-and-windmill-canal-quay-crane-fbb483b8","title":"Canal Quay Crane (Canal Town and Windmill)","summary":"Free 3D model of a timber post crane for a historical canal quay kit: stone base, oak post and a braced jib with a sheave, hook and winch drum that slew together.","description":"Free 3D model of a timber post crane for a historical canal quay kit: stone base, oak post and a braced jib with a sheave, hook and winch drum that slew together. Dimensions 1.60 by 4.93 by 3.98 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: jib at (0.00, 0.00, 0.00) m. Quayside crane 4.90 m tall with a 3.00 m reach, standing on a stone base. The jib, its brace, the sheave, the hook and the winch are one node turning about the post, which is how a post crane is worked. The rope is modelled solid and its length does not change. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: slew. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-quay-crane-fbb483b8","cdnUrl":"https://cdn.3dassets.dev/assets/36659/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-quay-crane-fbb483b8","thumbnailUrl":"https://cdn.3dassets.dev/assets/36659/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36659/v1/poster.webp","blurhash":"U46HWHM{00-p8wxu.SIVIobHt7oM~qIo9F-V","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":96824,"triangles":1048,"vertices":1228,"meshes":5,"materials":3,"textures":2,"animations":["slew"],"boundingBox":{"min":[-0.800000011920929,0.000005185911514049568,-0.800000011920929],"max":[0.800000011920929,4.927515983581543,3.1792518352563244]},"sizeMeters":[1.6,4.928,3.979],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:07.194Z","updatedAt":"2026-09-11T22:15:07.344Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36659/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalQuayCraneCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36659/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36659/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36659/v1/model.glb\" alt=\"Canal Quay Crane (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36659/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36659/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36656","slug":"canal-town-and-windmill-canal-barge-hull-df431a75","title":"Canal Barge Hull (Canal Town and Windmill)","summary":"Free 3D model of a canal barge hull for a historical waterway kit: 12.6 m flat bottomed carrier with a boarded hold, leeboards, mast tabernacle and a working tiller.","description":"Free 3D model of a canal barge hull for a historical waterway kit: 12.6 m flat bottomed carrier with a boarded hold, leeboards, mast tabernacle and a working tiller. Dimensions 3.62 by 4.99 by 13.19 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: tiller at (0.00, 1.83, -6.42) m. Barge 12.60 m long, 3.00 m in the beam and 1.15 m deep, drawing about 0.45 m, so float it with the origin 0.45 m under the water surface. The tiller is one node that puts over and comes back; the leeboards, the mast and the mooring ropes are fixed. The transom name board is blank apart from invented abstract marks. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: steer. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-barge-hull-df431a75","cdnUrl":"https://cdn.3dassets.dev/assets/36656/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-barge-hull-df431a75","thumbnailUrl":"https://cdn.3dassets.dev/assets/36656/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36656/v1/poster.webp","blurhash":"U47,A8=w0~WqE#ADe;-A0OI=^OW:=d}rs-9^","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":338236,"triangles":13472,"vertices":11710,"meshes":6,"materials":5,"textures":2,"animations":["steer"],"boundingBox":{"min":[-1.8090360353022623,-0.00009490739881923282,-6.849999904632568],"max":[1.8090360353022623,4.994604018108378,6.33871603012085]},"sizeMeters":[3.618,4.995,13.189],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:04.261Z","updatedAt":"2026-09-11T22:15:04.448Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36656/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CanalBargeHullCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36656/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36656/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36656/v1/model.glb\" alt=\"Canal Barge Hull (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36656/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36656/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36653","slug":"canal-town-and-windmill-canal-rowing-boat-8609513a","title":"Canal Rowing Boat (Canal Town and Windmill)","summary":"Free 3D model of a clinker built rowing boat for a historical canal town kit: 3.9 m hull with lapped strakes, three thwarts and a pair of oars shipped inboard.","description":"Free 3D model of a clinker built rowing boat for a historical canal town kit: 3.9 m hull with lapped strakes, three thwarts and a pair of oars shipped inboard. Dimensions 1.61 by 0.88 by 3.92 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Rowing boat 3.90 m long and 1.34 m in the beam, drawing about 0.20 m, so float it with the origin 0.20 m under the water surface. Static model: the oars are shipped inboard and modelled solid. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-rowing-boat-8609513a","cdnUrl":"https://cdn.3dassets.dev/assets/36653/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-rowing-boat-8609513a","thumbnailUrl":"https://cdn.3dassets.dev/assets/36653/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36653/v1/poster.webp","blurhash":"U383wy%10#=?-.9]M|=w029v^5a%D*=xxu9_","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":317452,"triangles":12744,"vertices":11014,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-0.80408428062157,0.00004736319282983015,-1.9618881940841675],"max":[0.80408428062157,0.8761223183562424,1.9618881940841675]},"sizeMeters":[1.608,0.876,3.924],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:04.103Z","updatedAt":"2026-09-11T22:15:04.213Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36653/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalRowingBoatCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36653/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36653/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36653/v1/model.glb\" alt=\"Canal Rowing Boat (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36653/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36653/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36657","slug":"canal-town-and-windmill-canal-punt-f6e10158","title":"Canal Punt (Canal Town and Windmill)","summary":"Free 3D model of a flat bottomed canal punt for a historical waterway kit: 5.4 m planked platform with raked ends, two thwarts and a quant pole shipped aboard.","description":"Free 3D model of a flat bottomed canal punt for a historical waterway kit: 5.4 m planked platform with raked ends, two thwarts and a quant pole shipped aboard. Dimensions 1.29 by 0.64 by 5.71 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Punt 5.40 m long and 1.20 m in the beam, drawing about 0.12 m, so float it with the origin 0.12 m under the water surface. Static model with no moving parts. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-punt-f6e10158","cdnUrl":"https://cdn.3dassets.dev/assets/36657/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-punt-f6e10158","thumbnailUrl":"https://cdn.3dassets.dev/assets/36657/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36657/v1/poster.webp","blurhash":"U67,Mb$%Ndo0af9]Nbs.0$Nb$%fQbZ}r$iI;","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":105684,"triangles":3696,"vertices":3234,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.644882121091796,-0.000004577702022445784,-2.857064962387085],"max":[0.644882121091796,0.6355674944618607,2.857064962387085]},"sizeMeters":[1.29,0.636,5.714],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:06.848Z","updatedAt":"2026-09-11T22:15:06.945Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36657/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalPuntCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36657/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36657/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36657/v1/model.glb\" alt=\"Canal Punt (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36657/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36657/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36658","slug":"canal-town-and-windmill-canal-fender-piles-a63d9eb8","title":"Canal Fender Piles (Canal Town and Windmill)","summary":"Free 3D model of canal fender piles with a rubbing timber for a historical quayside kit: three driven oak piles, iron hoops and three rope fenders.","description":"Free 3D model of canal fender piles with a rubbing timber for a historical quayside kit: three driven oak piles, iron hoops and three rope fenders. Dimensions 3.60 by 1.98 by 0.71 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A 3.60 m run of fendering driven into the canal bed, 1.98 m from the bed to the pile heads, so it stands about 0.75 m above a water surface set 0.30 m below the coping. Static model: rope is flexible and a rigid node transform cannot bend it. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-fender-piles-a63d9eb8","cdnUrl":"https://cdn.3dassets.dev/assets/36658/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-fender-piles-a63d9eb8","thumbnailUrl":"https://cdn.3dassets.dev/assets/36658/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36658/v1/poster.webp","blurhash":"U37msi-;Eg?Gv}}@xuIp00D%,=M|K%4.Djs:","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52224,"triangles":1086,"vertices":1087,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-1.7999999523162842,-0.000008204234553388368,-0.22803040235033184],"max":[1.7999999523162842,1.9800082233080398,0.47992015798825527]},"sizeMeters":[3.6,1.98,0.708],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:06.904Z","updatedAt":"2026-09-11T22:15:07.001Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36658/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalFenderPilesCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36658/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36658/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36658/v1/model.glb\" alt=\"Canal Fender Piles (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36658/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36658/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36673","slug":"canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","title":"Town Doorstep And Railing (Canal Town and Windmill)","summary":"Free 3D model of a stone doorstep with iron railings for a historical canal town street kit: two treads, area railings, brass finials and a boot scraper.","description":"Free 3D model of a stone doorstep with iron railings for a historical canal town street kit: two treads, area railings, brass finials and a boot scraper. Dimensions 2.60 by 1.26 by 1.20 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Doorstep 2.60 m by 1.20 m and 1.26 m to the finials, with the treads facing +Z. Set it against a house front on the street. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","cdnUrl":"https://cdn.3dassets.dev/assets/36673/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-town-doorstep-and-railing-9fd09f87","thumbnailUrl":"https://cdn.3dassets.dev/assets/36673/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36673/v1/poster.webp","blurhash":"UEA^LAxu9FRj00xt%MRj00D*t7xu~qofWARj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":74752,"triangles":752,"vertices":1204,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.2999999523162842,0.00005554368520899189,-0.599911474317897],"max":[1.2999999523162842,1.2600189484711566,0.599911474317897]},"sizeMeters":[2.6,1.26,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:18.206Z","updatedAt":"2026-09-11T22:15:18.304Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36673/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TownDoorstepAndRailingCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36673/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36673/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36673/v1/model.glb\" alt=\"Town Doorstep And Railing (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36673/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36673/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36687","slug":"canal-town-and-windmill-window-box-with-flowers-db87b3e4","title":"Window Box With Flowers (Canal Town and Windmill)","summary":"Free 3D model of a painted window box of red geraniums for a historical canal town kit: planted box with nine blooms and trailing foliage.","description":"Free 3D model of a painted window box of red geraniums for a historical canal town kit: planted box with nine blooms and trailing foliage. Dimensions 1.15 by 0.59 by 0.30 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Box 1.14 m by 0.30 m and 0.44 m to the tallest bloom, with the origin at the base so it sits on a sill or a bracket. Static model: the planting is solid geometry and does not sway. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-window-box-with-flowers-db87b3e4","cdnUrl":"https://cdn.3dassets.dev/assets/36687/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-window-box-with-flowers-db87b3e4","thumbnailUrl":"https://cdn.3dassets.dev/assets/36687/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36687/v1/poster.webp","blurhash":"U3A,E_}n02KN*#_MbW0f00Q._LEf7Wl;[YUD","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":94080,"triangles":3204,"vertices":3192,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-0.574999988079071,0.000030289879177580747,-0.1500190709582195],"max":[0.574999988079071,0.5939786813153402,0.1500190709582195]},"sizeMeters":[1.15,0.594,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:26.609Z","updatedAt":"2026-09-11T22:15:26.701Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36687/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WindowBoxWithFlowersCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36687/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36687/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36687/v1/model.glb\" alt=\"Window Box With Flowers (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36687/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36687/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36644","slug":"canal-town-and-windmill-mill-millstones-and-tun-cd6f8efc","title":"Mill Millstones And Tun (Canal Town and Windmill)","summary":"Free 3D model of a windmill millstone pair in a wooden tun for a historical mill kit: dressed runner stone turning on its spindle over the bedstone.","description":"Free 3D model of a windmill millstone pair in a wooden tun for a historical mill kit: dressed runner stone turning on its spindle over the bedstone. Dimensions 2.80 by 2.16 by 2.84 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: runner-stone at (0.00, 0.00, 0.00) m. A stone floor pair on its timber bearer, 2.90 m across and 1.60 m to the tun rim. The runner stone and its rynd are one node turning about the spindle; the bedstone, the tun staves and the iron hoop are fixed. Dressed with invented furrow patterns. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-millstones-and-tun-cd6f8efc","cdnUrl":"https://cdn.3dassets.dev/assets/36644/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-millstones-and-tun-cd6f8efc","thumbnailUrl":"https://cdn.3dassets.dev/assets/36644/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36644/v1/poster.webp","blurhash":"U6846;xu00M{S$a}smoK00NG~Wt7wboIRkR+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":177200,"triangles":4240,"vertices":3888,"meshes":6,"materials":4,"textures":2,"animations":["spin"],"boundingBox":{"min":[-1.399999976158142,0.00003632458069721678,-1.4199999570846558],"max":[1.399999976158142,2.160010724734077,1.4199999570846558]},"sizeMeters":[2.8,2.16,2.84],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:55.490Z","updatedAt":"2026-09-11T22:14:55.665Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36644/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MillMillstonesAndTunCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36644/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36644/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36644/v1/model.glb\" alt=\"Mill Millstones And Tun (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36644/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36644/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36645","slug":"canal-town-and-windmill-mill-grain-hopper-and-chute-2111998e","title":"Mill Grain Hopper And Chute (Canal Town and Windmill)","summary":"Free 3D model of a windmill grain hopper and chute on a timber frame for a historical mill kit: raking boarded hopper, boxed spout and a sack stand.","description":"Free 3D model of a windmill grain hopper and chute on a timber frame for a historical mill kit: raking boarded hopper, boxed spout and a sack stand. Dimensions 2.13 by 2.15 by 2.25 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Stone floor gear, 2.10 m across and 2.60 m tall, with the chute raking down to a sack stand at the foot. Static model: the grain that would run through it is not modelled. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-grain-hopper-and-chute-2111998e","cdnUrl":"https://cdn.3dassets.dev/assets/36645/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-grain-hopper-and-chute-2111998e","thumbnailUrl":"https://cdn.3dassets.dev/assets/36645/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36645/v1/poster.webp","blurhash":"U69YuMSf0On%}XNbAW$%SyjaNboK5TWV%0xY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":57172,"triangles":1416,"vertices":1388,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.9199853685990926,0,-0.9200000166893005],"max":[1.2099853900567648,2.1549479961395264,1.3300000429153442]},"sizeMeters":[2.13,2.155,2.25],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:58.307Z","updatedAt":"2026-09-11T22:14:58.419Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36645/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MillGrainHopperAndChuteCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36645/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36645/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36645/v1/model.glb\" alt=\"Mill Grain Hopper And Chute (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36645/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36645/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36647","slug":"canal-town-and-windmill-mill-grain-sacks-5b7598bd","title":"Mill Grain Sacks (Canal Town and Windmill)","summary":"Free 3D model of a group of tied grain sacks for a historical mill and quayside kit: three standing and one lying, corded at the neck.","description":"Free 3D model of a group of tied grain sacks for a historical mill and quayside kit: three standing and one lying, corded at the neck. Dimensions 1.69 by 1.02 by 1.40 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Four filled sacks as one grounded model, about 1.60 m across. Static geometry: sacking is flexible and one rigid node transform cannot deform it. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-grain-sacks-5b7598bd","cdnUrl":"https://cdn.3dassets.dev/assets/36647/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-grain-sacks-5b7598bd","thumbnailUrl":"https://cdn.3dassets.dev/assets/36647/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36647/v1/poster.webp","blurhash":"UDDcUIt800axNGRjxut700M{~qt7aet7fkRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":46680,"triangles":924,"vertices":877,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-0.7241894006729126,0.000005329230424955256,-0.8753567497856569],"max":[0.9650588035583496,1.0221017950981883,0.5266362588531923]},"sizeMeters":[1.689,1.022,1.402],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:58.327Z","updatedAt":"2026-09-11T22:14:58.456Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36647/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MillGrainSacksCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36647/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36647/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36647/v1/model.glb\" alt=\"Mill Grain Sacks (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36647/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36647/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36648","slug":"canal-town-and-windmill-mill-flour-cart-156904a4","title":"Mill Flour Cart (Canal Town and Windmill)","summary":"Free 3D model of a two wheel flour cart for a historical mill and canal town kit: spoked iron tyred wheels, boarded body, shafts and sacks of flour.","description":"Free 3D model of a two wheel flour cart for a historical mill and canal town kit: spoked iron tyred wheels, boarded body, shafts and sacks of flour. Dimensions 2.18 by 1.72 by 2.72 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-left at (-0.66, 0.61, -0.05) m; wheel-right at (0.66, 0.61, -0.05) m. Hand drawn delivery cart, 2.30 m long over the shafts. Both wheels are separate nodes turning about their own hubs. The load of sacks is modelled solid and fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-flour-cart-156904a4","cdnUrl":"https://cdn.3dassets.dev/assets/36648/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-flour-cart-156904a4","thumbnailUrl":"https://cdn.3dassets.dev/assets/36648/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36648/v1/poster.webp","blurhash":"UA8zDVNG01x]~CNG9Gxu5RR,-UxF0exZ?aVt","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":87184,"triangles":3788,"vertices":3644,"meshes":8,"materials":4,"textures":2,"animations":["wheel-roll"],"boundingBox":{"min":[-1.090044878940996,0,-0.949999988079071],"max":[1.090044878940996,1.7166683412698365,1.7699999809265137]},"sizeMeters":[2.18,1.717,2.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:58.382Z","updatedAt":"2026-09-11T22:14:58.490Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36648/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function MillFlourCartCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36648/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36648/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36648/v1/model.glb\" alt=\"Mill Flour Cart (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36648/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36648/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36641","slug":"canal-town-and-windmill-mill-spare-sail-frame-a0450e8d","title":"Mill Spare Sail Frame (Canal Town and Windmill)","summary":"Free 3D model of a spare windmill sail frame on trestles for a historical mill yard: whip, sail bars and leading board, laid out uncovered.","description":"Free 3D model of a spare windmill sail frame on trestles for a historical mill yard: whip, sail bars and leading board, laid out uncovered. Dimensions 1.70 by 0.66 by 5.10 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A sail lying on two trestles in the mill yard, 5.10 m long, uncovered so the bar spacing is visible. Static model with no moving parts. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-mill-spare-sail-frame-a0450e8d","cdnUrl":"https://cdn.3dassets.dev/assets/36641/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-mill-spare-sail-frame-a0450e8d","thumbnailUrl":"https://cdn.3dassets.dev/assets/36641/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36641/v1/poster.webp","blurhash":"U26@1W=_0jIb^hADEN,t045S}:=]0O}F}=Fr","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":64996,"triangles":2052,"vertices":1748,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6999257258486733,0.00010188890685131069,-2.550088405609131],"max":[0.9999256781649575,0.6619248144508452,2.550088405609131]},"sizeMeters":[1.7,0.662,5.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:14:55.380Z","updatedAt":"2026-09-11T22:14:55.476Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36641/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MillSpareSailFrameCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36641/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36641/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36641/v1/model.glb\" alt=\"Mill Spare Sail Frame (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36641/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36641/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36691","slug":"canal-town-and-windmill-yard-broom-4b22ca03","title":"Yard Broom (Canal Town and Windmill)","summary":"Free 3D model of a bound birch yard broom for a historical canal town street kit: twig head on an iron hoop with a long tapered handle.","description":"Free 3D model of a bound birch yard broom for a historical canal town street kit: twig head on an iron hoop with a long tapered handle. Dimensions 0.74 by 1.78 by 0.31 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Broom 1.75 m long, leaning as if propped against a wall, with its head on the ground at the origin. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-yard-broom-4b22ca03","cdnUrl":"https://cdn.3dassets.dev/assets/36691/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-yard-broom-4b22ca03","thumbnailUrl":"https://cdn.3dassets.dev/assets/36691/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36691/v1/poster.webp","blurhash":"U267P_rt04tP5+9_=x};E3xD=_EjN3$#$x5W","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":78808,"triangles":2596,"vertices":2248,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.27071231950923585,0,-0.22684357761922896],"max":[0.46798524607822084,1.7838383913040161,0.08081111824763827]},"sizeMeters":[0.739,1.784,0.308],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":1,"publishedAt":"2026-09-11T22:15:28.565Z","updatedAt":"2026-09-11T23:38:31.475Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36691/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function YardBroomCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36691/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36691/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36691/v1/model.glb\" alt=\"Yard Broom (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36691/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36691/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36682","slug":"canal-town-and-windmill-yard-wheelbarrow-99feba61","title":"Yard Wheelbarrow (Canal Town and Windmill)","summary":"Free 3D model of a timber and iron wheelbarrow for a historical canal town yard kit: riveted tray, long handles, a spoked wheel that rolls and a load of rubble.","description":"Free 3D model of a timber and iron wheelbarrow for a historical canal town yard kit: riveted tray, long handles, a spoked wheel that rolls and a load of rubble. Dimensions 0.77 by 0.80 by 2.42 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-barrow at (0.00, 0.35, 0.72) m. Barrow 2.10 m long and 0.74 m wide, resting on its wheel and both legs. The wheel is a separate node turning about its hub; the tray, handles and load are fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-yard-wheelbarrow-99feba61","cdnUrl":"https://cdn.3dassets.dev/assets/36682/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-yard-wheelbarrow-99feba61","thumbnailUrl":"https://cdn.3dassets.dev/assets/36682/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36682/v1/poster.webp","blurhash":"U15Ea3ct009Z~XFuH=E300Di?H%N00#T?^^*","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":125316,"triangles":2452,"vertices":2209,"meshes":5,"materials":3,"textures":2,"animations":["wheel-roll"],"boundingBox":{"min":[-0.3844375989340476,-0.000016674006917016815,-1.350000023841858],"max":[0.3844375989340476,0.8046951749384136,1.0750000488758087]},"sizeMeters":[0.769,0.805,2.425],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:21.733Z","updatedAt":"2026-09-11T22:15:21.904Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36682/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function YardWheelbarrowCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36682/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36682/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36682/v1/model.glb\" alt=\"Yard Wheelbarrow (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36682/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36682/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36678","slug":"canal-town-and-windmill-quayside-packing-crates-3199787b","title":"Quayside Packing Crates (Canal Town and Windmill)","summary":"Free 3D model of a stack of timber packing crates for a historical canal quay kit: four battened cases with blank shipping panels, stacked and skewed.","description":"Free 3D model of a stack of timber packing crates for a historical canal quay kit: four battened cases with blank shipping panels, stacked and skewed. Dimensions 1.88 by 1.54 by 1.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A stack about 1.70 m across and 1.52 m tall, as one grounded model. The panels on the cases are blank paint patches and carry no lettering. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-quayside-packing-crates-3199787b","cdnUrl":"https://cdn.3dassets.dev/assets/36678/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-quayside-packing-crates-3199787b","thumbnailUrl":"https://cdn.3dassets.dev/assets/36678/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36678/v1/poster.webp","blurhash":"U496N?}=0OIpR+oLSeNu0gI;xGShe?Nbs-wg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":103980,"triangles":3072,"vertices":2736,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-0.5015408992767334,-0.000009675472624648407,-0.5605339153204525],"max":[1.37722647190094,1.540009637325652,0.43701833919626126]},"sizeMeters":[1.879,1.54,0.998],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:20.873Z","updatedAt":"2026-09-11T22:15:20.973Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36678/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuaysidePackingCratesCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36678/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36678/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36678/v1/model.glb\" alt=\"Quayside Packing Crates (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36678/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36678/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36679","slug":"canal-town-and-windmill-quayside-oak-barrels-331e1518","title":"Quayside Oak Barrels (Canal Town and Windmill)","summary":"Free 3D model of a group of oak barrels for a historical canal quay kit: three standing casks with iron hoops and one rolled on its side.","description":"Free 3D model of a group of oak barrels for a historical canal quay kit: three standing casks with iron hoops and one rolled on its side. Dimensions 2.13 by 0.93 by 1.73 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Four casks as one grounded model, about 1.90 m across. Static model with no moving parts. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-quayside-oak-barrels-331e1518","cdnUrl":"https://cdn.3dassets.dev/assets/36679/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-quayside-oak-barrels-331e1518","thumbnailUrl":"https://cdn.3dassets.dev/assets/36679/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36679/v1/poster.webp","blurhash":"U15E53^j0yn4$ykDS%bF019u}sXS9]aKv}WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52744,"triangles":1536,"vertices":1340,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.9767917990684509,-0.000021336945746130986,-0.9288164282776809],"max":[1.149399995803833,0.9343480948551138,0.8007490350901635]},"sizeMeters":[2.126,0.934,1.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:19.987Z","updatedAt":"2026-09-11T22:15:20.084Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36679/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuaysideOakBarrelsCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36679/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36679/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36679/v1/model.glb\" alt=\"Quayside Oak Barrels (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36679/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36679/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36689","slug":"canal-town-and-windmill-flower-bulb-crate-9acc548e","title":"Flower Bulb Crate (Canal Town and Windmill)","summary":"Free 3D model of a slatted crate of flower bulbs for a historical canal town market kit: open case with eighteen bulbs and a blank label panel.","description":"Free 3D model of a slatted crate of flower bulbs for a historical canal town market kit: open case with eighteen bulbs and a blank label panel. Dimensions 0.86 by 0.36 by 0.65 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Crate 0.88 m by 0.66 m and 0.36 m tall. The label panel is blank paint and carries no lettering. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-flower-bulb-crate-9acc548e","cdnUrl":"https://cdn.3dassets.dev/assets/36689/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-flower-bulb-crate-9acc548e","thumbnailUrl":"https://cdn.3dassets.dev/assets/36689/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36689/v1/poster.webp","blurhash":"U5B2uz-o00rXxuj[NGsA00Ip~pK6E1s,-pOE","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":81212,"triangles":1848,"vertices":2124,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-0.4300000071525574,-0.000007625469032324084,-0.32002135296509243],"max":[0.4300000071525574,0.36000763977414707,0.3249978617174303]},"sizeMeters":[0.86,0.36,0.645],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:27.477Z","updatedAt":"2026-09-11T22:15:27.677Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36689/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FlowerBulbCrateCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36689/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36689/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36689/v1/model.glb\" alt=\"Flower Bulb Crate (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36689/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36689/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36660","slug":"canal-town-and-windmill-canal-duckboard-walkway-fb17558f","title":"Canal Duckboard Walkway (Canal Town and Windmill)","summary":"Free 3D model of a duckboard walkway module for a historical canal town kit: 3 m of planking on three bearers with edge rails.","description":"Free 3D model of a duckboard walkway module for a historical canal town kit: 3 m of planking on three bearers with edge rails. Dimensions 1.20 by 0.28 by 3.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: near (walkway) at (0.00, 0.00, -1.50) facing (0, 0, -1); far (walkway) at (0.00, 0.00, 1.50) facing (0, 0, 1). Walkway module, 3 m long and 1.10 m wide, with ports at both ends on a 3 m pitch so runs join end to end along a wharf or across soft ground. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-canal-duckboard-walkway-fb17558f","cdnUrl":"https://cdn.3dassets.dev/assets/36660/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-canal-duckboard-walkway-fb17558f","thumbnailUrl":"https://cdn.3dassets.dev/assets/36660/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36660/v1/poster.webp","blurhash":"U58V_v%05m$i$i9^NH$$0OEN=wSzJR}=-TEg","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":65612,"triangles":2052,"vertices":1782,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.5999176000244149,0.00003959582889415114,-1.5],"max":[0.5999176000244149,0.2849604002968039,1.5]},"sizeMeters":[1.2,0.285,3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:07.294Z","updatedAt":"2026-09-11T22:15:07.406Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36660/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanalDuckboardWalkwayCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36660/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36660/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36660/v1/model.glb\" alt=\"Canal Duckboard Walkway (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36660/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36660/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36677","slug":"canal-town-and-windmill-market-stall-with-awning-a330661e","title":"Market Stall With Awning (Canal Town and Windmill)","summary":"Free 3D model of a canal town market stall with an awning for a historical street kit: trestle board, striped canopy, crates and waxed cheeses on the board.","description":"Free 3D model of a canal town market stall with an awning for a historical street kit: trestle board, striped canopy, crates and waxed cheeses on the board. Dimensions 2.90 by 2.36 by 1.33 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Stall 2.90 m wide, 2.30 m tall and 1.30 m deep, with the customer side at +Z. The awning is a spread sheet on a rigid frame: cloth needs a joint per panel and one rigid node transform cannot hang it. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-market-stall-with-awning-a330661e","cdnUrl":"https://cdn.3dassets.dev/assets/36677/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-market-stall-with-awning-a330661e","thumbnailUrl":"https://cdn.3dassets.dev/assets/36677/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36677/v1/poster.webp","blurhash":"UUE_~#xa4oWB~qxtD%NGEhozoLM{IAozozM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":103720,"triangles":3156,"vertices":3127,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-1.4500000476837158,-0.00009451351010936193,-0.671635046289784],"max":[1.4500000476837158,2.364373315500086,0.6549842158104461]},"sizeMeters":[2.9,2.364,1.327],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:19.275Z","updatedAt":"2026-09-11T22:15:19.390Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36677/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarketStallWithAwningCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36677/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36677/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36677/v1/model.glb\" alt=\"Market Stall With Awning (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36677/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36677/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36683","slug":"canal-town-and-windmill-cheese-stack-on-board-bc1cf9a0","title":"Cheese Stack On Board (Canal Town and Windmill)","summary":"Free 3D model of a stack of waxed cheeses on a market board for a historical canal town kit: eight round cheeses with red rinds on a planked trestle.","description":"Free 3D model of a stack of waxed cheeses on a market board for a historical canal town kit: eight round cheeses with red rinds on a planked trestle. Dimensions 1.30 by 0.89 by 0.87 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Board 1.30 m by 0.80 m at 0.47 m, with the cheeses stacked to 0.89 m. Static model. The cheeses carry no maker mark of any kind. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-cheese-stack-on-board-bc1cf9a0","cdnUrl":"https://cdn.3dassets.dev/assets/36683/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-cheese-stack-on-board-bc1cf9a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/36683/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36683/v1/poster.webp","blurhash":"U9EUib$f00jE*0oJD$WB00S$-WS200kD^+fl","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":76232,"triangles":1876,"vertices":2080,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-0.6499999761581421,-0.00003267317227231836,-0.43502092593560326],"max":[0.6499999761581421,0.8900336696376558,0.43502092593560326]},"sizeMeters":[1.3,0.89,0.87],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:23.630Z","updatedAt":"2026-09-11T22:15:23.738Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36683/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CheeseStackOnBoardCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36683/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36683/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36683/v1/model.glb\" alt=\"Cheese Stack On Board (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36683/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36683/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36684","slug":"canal-town-and-windmill-dairy-butter-churn-ca51f19e","title":"Dairy Butter Churn (Canal Town and Windmill)","summary":"Free 3D model of a staved butter churn for a historical canal town dairy kit: hooped barrel on a trestle with a cranked lid and paddle that turn.","description":"Free 3D model of a staved butter churn for a historical canal town dairy kit: hooped barrel on a trestle with a cranked lid and paddle that turn. Dimensions 0.95 by 1.37 by 0.68 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: churn-paddle at (0.00, 0.00, 0.00) m. Churn 0.88 m across the trestle and 1.37 m to the crank handle. The lid, the shaft and the crank are one node turning about the churn axis; the barrel and the trestle are fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-dairy-butter-churn-ca51f19e","cdnUrl":"https://cdn.3dassets.dev/assets/36684/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-dairy-butter-churn-ca51f19e","thumbnailUrl":"https://cdn.3dassets.dev/assets/36684/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36684/v1/poster.webp","blurhash":"U27vrr=_030h10I;}X-T0gNH}?-ntQs:V[NH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":50008,"triangles":1230,"vertices":1074,"meshes":5,"materials":3,"textures":1,"animations":["spin"],"boundingBox":{"min":[-0.4771103262901306,0,-0.3399871803837642],"max":[0.4771103262901306,1.3700005457606859,0.3399871803837642]},"sizeMeters":[0.954,1.37,0.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:24.603Z","updatedAt":"2026-09-11T22:15:24.723Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36684/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DairyButterChurnCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36684/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36684/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36684/v1/model.glb\" alt=\"Dairy Butter Churn (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36684/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36684/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36688","slug":"canal-town-and-windmill-tulip-trough-8346114c","title":"Tulip Trough (Canal Town and Windmill)","summary":"Free 3D model of a planted tulip trough for a historical canal town street kit: painted timber trough with fourteen red tulips in two rows.","description":"Free 3D model of a planted tulip trough for a historical canal town street kit: painted timber trough with fourteen red tulips in two rows. Dimensions 1.68 by 1.09 by 0.70 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Trough 1.66 m by 0.70 m and 0.96 m to the tallest bloom. Static model: the planting is solid geometry and does not sway. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-tulip-trough-8346114c","cdnUrl":"https://cdn.3dassets.dev/assets/36688/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-tulip-trough-8346114c","thumbnailUrl":"https://cdn.3dassets.dev/assets/36688/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36688/v1/poster.webp","blurhash":"U5Bp5,}r01E*]EyWOmIA00r^.6Ey9Z:R=LC5","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":125212,"triangles":4512,"vertices":4628,"meshes":4,"materials":4,"textures":2,"animations":[],"boundingBox":{"min":[-0.8399999737739563,-0.00003204816071761263,-0.3500021253680784],"max":[0.8399999737739563,1.0899891649208395,0.3500021253680784]},"sizeMeters":[1.68,1.09,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:26.811Z","updatedAt":"2026-09-11T22:15:26.920Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36688/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TulipTroughCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36688/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36688/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36688/v1/model.glb\" alt=\"Tulip Trough (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36688/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36688/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36681","slug":"canal-town-and-windmill-street-handcart-e85e9ee4","title":"Street Handcart (Canal Town and Windmill)","summary":"Free 3D model of a two wheel street handcart for a historical canal town kit: boarded body, shafts and spoked iron tyred wheels that roll.","description":"Free 3D model of a two wheel street handcart for a historical canal town kit: boarded body, shafts and spoked iron tyred wheels that roll. Dimensions 1.74 by 0.90 by 2.23 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-cart-left at (-0.55, 0.45, -0.10) m; wheel-cart-right at (0.55, 0.45, -0.10) m. Handcart 1.90 m long over the shafts and 1.06 m wide. Both wheels are separate nodes turning about their own hubs; the body and the shafts are fixed. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-street-handcart-e85e9ee4","cdnUrl":"https://cdn.3dassets.dev/assets/36681/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-street-handcart-e85e9ee4","thumbnailUrl":"https://cdn.3dassets.dev/assets/36681/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36681/v1/poster.webp","blurhash":"U67JtcR*0#sD}=NbEMw|0~WV=wxF0#so=xX5","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":70424,"triangles":3120,"vertices":2947,"meshes":6,"materials":3,"textures":1,"animations":["wheel-roll"],"boundingBox":{"min":[-0.8700213643191161,-0.000021588955319340464,-0.7699999809265137],"max":[0.8700213643191161,0.8969552637676362,1.4600000381469727]},"sizeMeters":[1.74,0.897,2.23],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:22.043Z","updatedAt":"2026-09-11T22:15:22.183Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36681/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function StreetHandcartCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36681/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36681/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36681/v1/model.glb\" alt=\"Street Handcart (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36681/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36681/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36680","slug":"canal-town-and-windmill-delivery-bicycle-13493bc2","title":"Delivery Bicycle (Canal Town and Windmill)","summary":"Free 3D model of a step through delivery bicycle with a front carrier for a historical canal town kit: spoked wheels that roll, a crate and a sack in the basket.","description":"Free 3D model of a step through delivery bicycle with a front carrier for a historical canal town kit: spoked wheels that roll, a crate and a sack in the basket. Dimensions 0.75 by 1.26 by 2.19 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-bike-front at (0.00, 0.36, 1.02) m; wheel-bike-rear at (0.00, 0.40, -0.42) m. Bicycle 1.90 m long and 0.72 m over the handlebars, standing upright on both wheels. Each wheel is a separate node turning about its own hub; the frame, cranks and load are fixed. The chain is modelled as a solid guard rather than as links. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-delivery-bicycle-13493bc2","cdnUrl":"https://cdn.3dassets.dev/assets/36680/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-delivery-bicycle-13493bc2","thumbnailUrl":"https://cdn.3dassets.dev/assets/36680/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36680/v1/poster.webp","blurhash":"U77A#j}@MyEL%Ls:WCSL015Rt7$*9GIot6$+","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":100000,"triangles":3870,"vertices":3709,"meshes":9,"materials":5,"textures":2,"animations":["wheel-roll"],"boundingBox":{"min":[-0.36824029961437016,0,-0.815000010728836],"max":[0.3799802612459983,1.265001512317417,1.374999989271164]},"sizeMeters":[0.748,1.265,2.19],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:21.939Z","updatedAt":"2026-09-11T22:15:22.050Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36680/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DeliveryBicycleCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36680/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36680/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36680/v1/model.glb\" alt=\"Delivery Bicycle (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36680/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36680/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36686","slug":"canal-town-and-windmill-quayside-bench-13badf82","title":"Quayside Bench (Canal Town and Windmill)","summary":"Free 3D model of a slatted quayside bench for a historical canal town street kit: cast iron ends with scroll arms and six timber slats.","description":"Free 3D model of a slatted quayside bench for a historical canal town street kit: cast iron ends with scroll arms and six timber slats. Dimensions 1.80 by 1.05 by 0.60 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Bench 1.80 m long, 0.62 m deep and 1.02 m to the top slat, facing +Z. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-quayside-bench-13badf82","cdnUrl":"https://cdn.3dassets.dev/assets/36686/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-quayside-bench-13badf82","thumbnailUrl":"https://cdn.3dassets.dev/assets/36686/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36686/v1/poster.webp","blurhash":"UBA+Z]R.11j]}=xaEgI;0~$zw^I;9^objHWC","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":44040,"triangles":1240,"vertices":1049,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.000024653104647609503,-0.3497212778939575],"max":[0.8999999761581421,1.051102115874048,0.24996931934995537]},"sizeMeters":[1.8,1.051,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:24.009Z","updatedAt":"2026-09-11T22:15:24.105Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36686/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function QuaysideBenchCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36686/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36686/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36686/v1/model.glb\" alt=\"Quayside Bench (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36686/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36686/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36674","slug":"canal-town-and-windmill-town-street-lamp-2c561969","title":"Town Street Lamp (Canal Town and Windmill)","summary":"Free 3D model of a cast iron canal town street lamp for a historical street kit: fluted column, glazed four pane lantern and a brass finial.","description":"Free 3D model of a cast iron canal town street lamp for a historical street kit: fluted column, glazed four pane lantern and a brass finial. Dimensions 0.65 by 4.92 by 0.68 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Street lamp 4.92 m tall on a 0.60 m base. Static model and it carries no light source: put a real light in the engine at the lantern head, about 4.0 m up. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-town-street-lamp-2c561969","cdnUrl":"https://cdn.3dassets.dev/assets/36674/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-town-street-lamp-2c561969","thumbnailUrl":"https://cdn.3dassets.dev/assets/36674/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36674/v1/poster.webp","blurhash":"U13uyNxu00D$~qs;4TIo?toe9GNIx9jXNgbd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25016,"triangles":1052,"vertices":992,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.32335946566236284,0,-0.33992735347898567],"max":[0.32335946566236284,4.920000076293945,0.33992735347898567]},"sizeMeters":[0.647,4.92,0.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:18.255Z","updatedAt":"2026-09-11T22:15:18.353Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36674/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TownStreetLampCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36674/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36674/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36674/v1/model.glb\" alt=\"Town Street Lamp (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36674/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36674/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36675","slug":"canal-town-and-windmill-town-hitching-post-28eb6d39","title":"Town Hitching Post (Canal Town and Windmill)","summary":"Free 3D model of a stone hitching post with an iron ring for a historical canal town street kit: turned post, moulded cap and a tethering ring.","description":"Free 3D model of a stone hitching post with an iron ring for a historical canal town street kit: turned post, moulded cap and a tethering ring. Dimensions 0.29 by 1.22 by 0.30 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Post 1.22 m tall and 0.30 m across. Static model; the ring is modelled solid and does not swing. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-town-hitching-post-28eb6d39","cdnUrl":"https://cdn.3dassets.dev/assets/36675/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-town-hitching-post-28eb6d39","thumbnailUrl":"https://cdn.3dassets.dev/assets/36675/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36675/v1/poster.webp","blurhash":"U29Qmp~q0000R*M{oL-;tRWVRQs;-;ayD*ju","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55264,"triangles":242,"vertices":237,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.14267525588654437,0,-0.14997284204358058],"max":[0.14267525588654437,1.2200000286102295,0.14997284204358058]},"sizeMeters":[0.285,1.22,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:17.384Z","updatedAt":"2026-09-11T22:15:17.480Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36675/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TownHitchingPostCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36675/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36675/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36675/v1/model.glb\" alt=\"Town Hitching Post (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36675/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36675/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36692","slug":"canal-town-and-windmill-town-signpost-blank-boards-5e143417","title":"Town Signpost Blank Boards (Canal Town and Windmill)","summary":"Free 3D model of a painted canal town signpost with three blank finger boards for a historical street kit: turned post, stone collar and pointed boards.","description":"Free 3D model of a painted canal town signpost with three blank finger boards for a historical street kit: turned post, stone collar and pointed boards. Dimensions 1.74 by 3.16 by 2.41 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Signpost 3.16 m tall on a 0.54 m stone collar. Every board is blank apart from invented abstract marks: no lettering, place name or real destination is modelled. Static model. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-town-signpost-blank-boards-5e143417","cdnUrl":"https://cdn.3dassets.dev/assets/36692/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-town-signpost-blank-boards-5e143417","thumbnailUrl":"https://cdn.3dassets.dev/assets/36692/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36692/v1/poster.webp","blurhash":"U268Ns_M0000?cRkDi-o009F_3_300V@~qSg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":80984,"triangles":910,"vertices":987,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-0.5386189869770283,0.000004267624442680362,-1.3108901977539062],"max":[1.200000231636452,3.1600000858306885,1.100000023841858]},"sizeMeters":[1.739,3.16,2.411],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:28.805Z","updatedAt":"2026-09-11T22:15:28.909Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36692/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TownSignpostBlankBoardsCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36692/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36692/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36692/v1/model.glb\" alt=\"Town Signpost Blank Boards (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36692/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36692/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"36685","slug":"canal-town-and-windmill-street-water-pump-cb57e753","title":"Street Water Pump (Canal Town and Windmill)","summary":"Free 3D model of a cased street water pump for a historical canal town kit: painted column, brass spout, a bucket under it and a handle that rocks.","description":"Free 3D model of a cased street water pump for a historical canal town kit: painted column, brass spout, a bucket under it and a handle that rocks. Dimensions 0.90 by 2.16 by 1.83 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: pump-handle at (0.00, 1.76, 0.10) m. Pump 2.16 m tall on a 0.90 m stone base. The handle is one node rocking about its trunnion; the column, the spout and the pail are fixed. No water is modelled. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Rigid node-transform clips: pump. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-street-water-pump-cb57e753","cdnUrl":"https://cdn.3dassets.dev/assets/36685/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-street-water-pump-cb57e753","thumbnailUrl":"https://cdn.3dassets.dev/assets/36685/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36685/v1/poster.webp","blurhash":"U27BM[~p000000E0-=%4=$RT9@%dIbMz%J_1","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":95060,"triangles":1004,"vertices":934,"meshes":6,"materials":5,"textures":3,"animations":["pump"],"boundingBox":{"min":[-0.4500228930087923,0.00001648022451677944,-0.9749956192398996],"max":[0.4500228930087923,2.1600000858306885,0.8600000143051147]},"sizeMeters":[0.9,2.16,1.835],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:24.739Z","updatedAt":"2026-09-11T22:15:24.850Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36685/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function StreetWaterPumpCanalTownAndWindmill(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/36685/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36685/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36685/v1/model.glb\" alt=\"Street Water Pump (Canal Town and Windmill)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36685/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36685/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"36690","slug":"canal-town-and-windmill-yard-clothes-line-frame-22d7a120","title":"Yard Clothes Line Frame (Canal Town and Windmill)","summary":"Free 3D model of a clothes line on a timber frame for a historical canal town yard kit: two braced posts, three lines and seven pieces of washing hung out.","description":"Free 3D model of a clothes line on a timber frame for a historical canal town yard kit: two braced posts, three lines and seven pieces of washing hung out. Dimensions 4.00 by 2.10 by 0.86 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Frame 3.50 m long and 2.09 m tall on two stone pads. Static model: the washing is modelled hanging and never moves, because cloth needs a joint per hanging element and one rigid node transform cannot give it. No real town, mill, company or product is depicted, and every board and gable stone is blank or carries invented abstract shapes. Canal town palette: red brick, lime plaster, grey stone, clay pantile, oak and pale pine, dark green paint, wrought iron, brass, dark green glass used for glazing and for the canal, leaf green and a single flower red. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/canal-town-and-windmill-yard-clothes-line-frame-22d7a120","cdnUrl":"https://cdn.3dassets.dev/assets/36690/v1/model.glb","downloadUrl":"https://3dassets.dev/download/canal-town-and-windmill-yard-clothes-line-frame-22d7a120","thumbnailUrl":"https://cdn.3dassets.dev/assets/36690/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/36690/v1/poster.webp","blurhash":"UGCZ6B%M00IA~V-p9FD%9ZVs%2kq4osS?HtR","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":131608,"triangles":2316,"vertices":2204,"meshes":5,"materials":5,"textures":3,"animations":[],"boundingBox":{"min":[-2,-0.00007049760787794512,-0.4279915768913846],"max":[2,2.0998473605139623,0.4279915768913846]},"sizeMeters":[4,2.1,0.856],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T22:15:27.639Z","updatedAt":"2026-09-11T22:15:27.766Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/36690/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function YardClothesLineFrameCanalTownAndWindmill(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/36690/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/36690/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/36690/v1/model.glb\" alt=\"Yard Clothes Line Frame (Canal Town and Windmill)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/36690/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/36690/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}