{"data":{"id":"187","slug":"lantern-watch","title":"Lantern Watch: Night Guard Post","summary":"Walk a lantern lit medieval guard post at dusk: through the south arch, past rows of lantern posts, over the drain channel bridge to the old well, the smith corner, the guardroom mess, and under the gatehouse between timber watchtowers.","url":"https://3dassets.dev/demos/lantern-watch","coverUrl":"https://cdn.3dassets.dev/media/lantern-watch-demo.png","featured":false,"pack":{"slug":"lantern-watch","title":"Lantern Watch: Medieval Guard Post","url":"https://3dassets.dev/packs/lantern-watch","summary":"A medieval watch post kit with open stone defenses, warm lanterns, guard equipment and static courtyard life.","assetCount":25,"totalBytes":1803932,"starterScene":{"slug":"lantern-watch-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/99/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-starter-scene","fileSize":859860}},"placementCount":488,"assetCount":24,"spawn":{"position":[0,0.15,15],"yaw":180},"publishedAt":"2026-09-23T14:45:51.891Z","updatedAt":"2026-09-23T14:45:51.892Z","description":"Spawn outside the south arch and walk the lantern lit lane over the drain channel bridge to the old well plaza, then on to the gatehouse between two open timber watchtowers. 488 placements of all 24 placeable designs over a 42 by 32 m walled courtyard.\n\n## What is laid out\n\nA walled courtyard of battlement bays holds the stone gatehouse north, the courtyard arch south and four open timber watchtowers on the corners. Cobble tiles pave the floor with a sunken drain channel crossed by three arched bridges. The centre is the winding well with braziers, benches, lantern post rows, the smith corner with anvils and barrels, and the guardroom mess with cheese wheels and watch tokens on the benches. Shields lean on the north wall, spears rack by the gate, banners and hanging lanterns dress the walls, and cypresses, ivy, rats and crows bring courtyard life.\n\n## What moves\n\nNothing is animated: the pack ships no clips, so every placement rides the proximity default and the scene reads as a still dusk watch. Guard figures, rats and crows are set to off explicitly since they are posed statics, and the description records that they never move.\n\n## What is not placed and why\n\nThe starter scene is the only published member left out: it is the composed 11 m starter diorama, and placing it inside the demo would duplicate the kit as one floating block. Distinct count stops at 24 because the pack holds 24 placeable designs, so the usual 48 distinct target cannot apply here; density comes from repeats instead, with 280 cobble tiles plus full wall bays.","scene":{"version":1,"spawn":{"position":[0,0.15,15],"yaw":180},"bounds":{"min":[-21,-1,-16],"max":[21,12,16]},"ground":{"style":"plain"},"environment":{"preset":"outdoor","sky":"#232f4d","horizon":"#e8a04c","floor":"#7a7d82","light":"dusk","shadows":true},"placements":[{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-19,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-17,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-15,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-13,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-11,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-9,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-7,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-5,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-3,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[-1,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[1,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[3,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[5,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[7,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[9,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[11,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[13,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[15,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[17,0,13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,-13],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,-11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,-9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,-7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,-5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,-3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,-1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,1],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,3],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,5],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,7],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,9],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,11],"rotation":0},{"asset":"lantern-watch-courtyard-cobble-tile","position":[19,0,13],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-18,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-18,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-16,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-16,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-14,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-14,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-12,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-12,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-10,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-10,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-8,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-8,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-6,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-6,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-4,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-4,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-2,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-2,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[2,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[2,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[4,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[4,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[6,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[6,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[8,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[8,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[10,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[10,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[12,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[12,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[14,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[14,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[16,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[16,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[18,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[18,0.12,13.5],"rotation":0},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,-12],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,-12],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,-10],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,-10],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,-8],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,-8],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,-6],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,-6],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,-4],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,-4],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,-2],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,-2],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,0],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,0],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,2],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,2],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,4],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,4],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,6],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,6],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,8],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,8],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,10],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,10],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[-19.5,0.12,12],"rotation":90},{"asset":"lantern-watch-stone-battlement-wall","position":[19.5,0.12,12],"rotation":90},{"asset":"lantern-watch-stone-gatehouse","position":[0,0.12,-13.5],"rotation":0},{"asset":"lantern-watch-stone-courtyard-arch","position":[0,0.12,13.5],"rotation":0},{"asset":"lantern-watch-open-timber-watchtower","position":[-16.5,0.12,-10.5],"rotation":135},{"asset":"lantern-watch-open-timber-watchtower","position":[16.5,0.12,-10.5],"rotation":-135},{"asset":"lantern-watch-open-timber-watchtower","position":[-16.5,0.12,10.5],"rotation":45},{"asset":"lantern-watch-open-timber-watchtower","position":[16.5,0.12,10.5],"rotation":-45},{"asset":"lantern-watch-arched-courtyard-bridge","position":[-10,0.12,4],"rotation":0},{"asset":"lantern-watch-arched-courtyard-bridge","position":[0,0.12,4],"rotation":0},{"asset":"lantern-watch-arched-courtyard-bridge","position":[10,0.12,4],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[-2.5,0.12,-8],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[2.5,0.12,-8],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[-2.5,0.12,-5],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[2.5,0.12,-5],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[-2.5,0.12,-2],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[2.5,0.12,-2],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[-2.5,0.12,1],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[2.5,0.12,1],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[-2.5,0.12,7],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[2.5,0.12,7],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[-2.5,0.12,10],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[2.5,0.12,10],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[-4.8,0.12,-10.5],"rotation":0},{"asset":"lantern-watch-courtyard-lantern-post","position":[4.8,0.12,-10.5],"rotation":0},{"asset":"lantern-watch-stone-winding-well","position":[0,0.12,-2],"rotation":0},{"asset":"lantern-watch-courtyard-flame-brazier","position":[-5,0.12,-2],"rotation":0},{"asset":"lantern-watch-courtyard-flame-brazier","position":[5,0.12,-2],"rotation":0},{"asset":"lantern-watch-courtyard-flame-brazier","position":[-4,0.12,8],"rotation":0},{"asset":"lantern-watch-courtyard-flame-brazier","position":[4,0.12,8],"rotation":0},{"asset":"lantern-watch-courtyard-flame-brazier","position":[0,0.12,-6],"rotation":0},{"asset":"lantern-watch-guardroom-bench","position":[-4.2,0.12,-2],"rotation":90},{"asset":"lantern-watch-guardroom-bench","position":[4.2,0.12,-2],"rotation":90},{"asset":"lantern-watch-guardroom-bench","position":[12,0.12,6.5],"rotation":0},{"asset":"lantern-watch-guardroom-bench","position":[12,0.12,8.5],"rotation":0},{"asset":"lantern-watch-guardroom-bench","position":[13.5,0.12,6.5],"rotation":90},{"asset":"lantern-watch-guardroom-bench","position":[13.5,0.12,8.5],"rotation":90},{"asset":"lantern-watch-lantern-watch-token","position":[12,0.65,6.5],"rotation":0},{"asset":"lantern-watch-lantern-watch-token","position":[13.5,0.65,8.5],"rotation":0},{"asset":"lantern-watch-tavern-cheese-wheel","position":[12,0.65,8.5],"rotation":0},{"asset":"lantern-watch-tavern-cheese-wheel","position":[13.5,0.65,6.5],"rotation":0},{"asset":"lantern-watch-tavern-cheese-wheel","position":[14,0.12,7.5],"rotation":0},{"asset":"lantern-watch-tavern-cheese-wheel","position":[11.8,0.12,9.2],"rotation":0},{"asset":"lantern-watch-courtyard-smith-anvil","position":[-13,0.12,7.5],"rotation":20},{"asset":"lantern-watch-courtyard-smith-anvil","position":[-11.5,0.12,7.5],"rotation":-15},{"asset":"lantern-watch-guardroom-bench","position":[-12.5,0.12,9.2],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[-14,0.12,6],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[-13,0.12,6],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[-14.5,0.12,7],"rotation":0},{"asset":"lantern-watch-ironbound-watch-chest","position":[5.5,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-ironbound-watch-chest","position":[-5.5,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-ironbound-watch-chest","position":[15,0.12,5],"rotation":-90},{"asset":"lantern-watch-ironbound-watch-chest","position":[12.5,0.12,5],"rotation":-90},{"asset":"lantern-watch-ironbound-watch-chest","position":[-12.3,0.12,-7],"rotation":90},{"asset":"lantern-watch-ironbound-watch-chest","position":[10,0.12,7],"rotation":180},{"asset":"lantern-watch-ironbound-watch-chest","position":[-12,0.12,6.5],"rotation":0},{"asset":"lantern-watch-ironbound-watch-chest","position":[4,0.12,11],"rotation":180},{"asset":"lantern-watch-staved-rain-barrel","position":[5.6,0.12,12.3],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[6.5,0.12,12.3],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[7.4,0.12,12.3],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[6,0.12,11.4],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[7,0.12,11.4],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[2.6,0.12,-12.5],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[-2.6,0.12,-12.5],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[11.5,0.12,10.5],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[-13.5,0.12,-8],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[13.8,0.12,-8.5],"rotation":0},{"asset":"lantern-watch-staved-rain-barrel","position":[10.5,0.12,10],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[-4,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[-3,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[-2,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[-1,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[1,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[2,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[3,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-leaf-head-watch-spear","position":[4,0.12,-11.5],"rotation":0},{"asset":"lantern-watch-watch-heater-shield","position":[-7,0.12,-12.7],"rotation":0},{"asset":"lantern-watch-watch-heater-shield","position":[-6,0.12,-12.7],"rotation":0},{"asset":"lantern-watch-watch-heater-shield","position":[-5,0.12,-12.7],"rotation":0},{"asset":"lantern-watch-watch-heater-shield","position":[5,0.12,-12.7],"rotation":0},{"asset":"lantern-watch-watch-heater-shield","position":[6,0.12,-12.7],"rotation":0},{"asset":"lantern-watch-watch-heater-shield","position":[7,0.12,-12.7],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[-2.2,0.12,-12.2],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[2.2,0.12,-12.2],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[-10,0.12,-12.6],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[-10,0.12,12.6],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[-6,0.12,-12.6],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[-6,0.12,12.6],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[6,0.12,-12.6],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[6,0.12,12.6],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[10,0.12,-12.6],"rotation":0},{"asset":"lantern-watch-lantern-watch-banner","position":[10,0.12,12.6],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[-1.6,0.12,-12.2],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[1.6,0.12,-12.2],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[-1.5,0.12,12.4],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[1.5,0.12,12.4],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[-18.8,0.12,-5],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[-18.8,0.12,-1],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[-18.8,0.12,1],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[-18.8,0.12,5],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[18.8,0.12,-5],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[18.8,0.12,-1],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[18.8,0.12,1],"rotation":0},{"asset":"lantern-watch-hanging-wall-lantern","position":[18.8,0.12,5],"rotation":0},{"asset":"lantern-watch-lantern-guard-figure","position":[-1.2,0.12,-11],"rotation":0,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[1.2,0.12,-11],"rotation":0,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[-1.5,0.12,11.5],"rotation":0,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[13.5,0.12,10.5],"rotation":-90,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[-13.5,0.12,-10.5],"rotation":90,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[1.5,0.12,-0.5],"rotation":-90,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[1.8,0.12,6],"rotation":-90,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[-3,0.12,2],"rotation":160,"animate":"off"},{"asset":"lantern-watch-lantern-guard-figure","position":[-2,0.12,2.6],"rotation":-20,"animate":"off"},{"asset":"lantern-watch-courtyard-rat","position":[6,-0.38,4],"rotation":90,"animate":"off"},{"asset":"lantern-watch-courtyard-rat","position":[-7,-0.38,4],"rotation":-90,"animate":"off"},{"asset":"lantern-watch-courtyard-rat","position":[-12.5,0.12,12.3],"rotation":30,"animate":"off"},{"asset":"lantern-watch-courtyard-rat","position":[3.5,0.12,9],"rotation":-60,"animate":"off"},{"asset":"lantern-watch-courtyard-rat","position":[-5,0.12,-6.5],"rotation":120,"animate":"off"},{"asset":"lantern-watch-perched-courtyard-crow","position":[-8,2.5900000000000003,-13.5],"rotation":0,"animate":"off"},{"asset":"lantern-watch-perched-courtyard-crow","position":[8,2.5900000000000003,-13.5],"rotation":180,"animate":"off"},{"asset":"lantern-watch-perched-courtyard-crow","position":[-8,2.5900000000000003,13.5],"rotation":180,"animate":"off"},{"asset":"lantern-watch-perched-courtyard-crow","position":[8,2.5900000000000003,13.5],"rotation":0,"animate":"off"},{"asset":"lantern-watch-perched-courtyard-crow","position":[0.7,3.27,-13.5],"rotation":90,"animate":"off"},{"asset":"lantern-watch-perched-courtyard-crow","position":[0.6,2.31,-2],"rotation":-90,"animate":"off"},{"asset":"lantern-watch-climbing-wall-ivy","position":[-14,0.12,-13.1],"rotation":180},{"asset":"lantern-watch-climbing-wall-ivy","position":[-9,0.12,-13.1],"rotation":180},{"asset":"lantern-watch-climbing-wall-ivy","position":[-4,0.12,-13.1],"rotation":180},{"asset":"lantern-watch-climbing-wall-ivy","position":[5,0.12,-13.1],"rotation":180},{"asset":"lantern-watch-climbing-wall-ivy","position":[10,0.12,-13.1],"rotation":180},{"asset":"lantern-watch-climbing-wall-ivy","position":[15,0.12,-13.1],"rotation":180},{"asset":"lantern-watch-climbing-wall-ivy","position":[-12,0.12,13.1],"rotation":0},{"asset":"lantern-watch-climbing-wall-ivy","position":[-7,0.12,13.1],"rotation":0},{"asset":"lantern-watch-climbing-wall-ivy","position":[7,0.12,13.1],"rotation":0},{"asset":"lantern-watch-climbing-wall-ivy","position":[12,0.12,13.1],"rotation":0},{"asset":"lantern-watch-climbing-wall-ivy","position":[-19.1,0.12,-6],"rotation":90},{"asset":"lantern-watch-climbing-wall-ivy","position":[-19.1,0.12,0],"rotation":90},{"asset":"lantern-watch-climbing-wall-ivy","position":[-19.1,0.12,8],"rotation":90},{"asset":"lantern-watch-climbing-wall-ivy","position":[19.1,0.12,-4],"rotation":-90},{"asset":"lantern-watch-climbing-wall-ivy","position":[19.1,0.12,2],"rotation":-90},{"asset":"lantern-watch-climbing-wall-ivy","position":[19.1,0.12,9],"rotation":-90},{"asset":"lantern-watch-courtyard-cypress","position":[-14,0.12,-12.2],"rotation":0},{"asset":"lantern-watch-courtyard-cypress","position":[14,0.12,-12.2],"rotation":0},{"asset":"lantern-watch-courtyard-cypress","position":[-14,0.12,12.2],"rotation":0},{"asset":"lantern-watch-courtyard-cypress","position":[14,0.12,12.2],"rotation":0},{"asset":"lantern-watch-courtyard-cypress","position":[-18.2,0.12,0],"rotation":0},{"asset":"lantern-watch-courtyard-cypress","position":[-18.2,0.12,6],"rotation":0},{"asset":"lantern-watch-courtyard-cypress","position":[18.2,0.12,0],"rotation":0},{"asset":"lantern-watch-courtyard-cypress","position":[18.2,0.12,6],"rotation":0}],"points":[{"position":[0,1.2,15],"title":"South Arch","text":"Pass under the south arch into the lantern lit courtyard. The cobbled lane runs straight past the lantern rows to the well plaza and the gatehouse beyond.","asset":"lantern-watch-stone-courtyard-arch"},{"position":[0,1.2,7.5],"title":"Lantern Walk","text":"Two rows of lantern posts light the main lane. Braziers burn at the crossings and the arched bridge crosses the drain channel just ahead.","asset":"lantern-watch-courtyard-lantern-post"},{"position":[2,1.2,4],"title":"Drain Channel Bridge","text":"An arched footbridge crosses the sunken drain channel that splits the courtyard. Rats hunt along the channel bed after dark.","asset":"lantern-watch-arched-courtyard-bridge"},{"position":[0,1.2,0.5],"title":"Old Well","text":"The winding well anchors the plaza, ringed by benches, braziers and a watching guard. A crow perches on the rim at dusk.","asset":"lantern-watch-stone-winding-well"},{"position":[-11,1.2,7.5],"title":"Smith Corner","text":"The courtyard anvil with rain barrels and a work bench for repairs. Racked spears and shields by the gate show the watch stays armed.","asset":"lantern-watch-courtyard-smith-anvil"},{"position":[14,1.2,9.5],"title":"Guardroom Mess","text":"Benches, cheese wheels and watch tokens where off duty guards eat. Chests and barrels line the east wall behind them.","asset":"lantern-watch-guardroom-bench"},{"position":[0,1.2,-9],"title":"Gatehouse","text":"The stone gatehouse holds the north wall, flanked by spear racks, shields and banners. Guards stand post here through the night.","asset":"lantern-watch-stone-gatehouse"},{"position":[14,1.2,10.5],"title":"Watchtower","text":"An open timber watchtower over the south east corner. Cypresses, ivy and wall lanterns dress the battlements around it.","asset":"lantern-watch-open-timber-watchtower"}],"poster":{"position":[2.5,1.7,6],"lookAt":[0,2.2,-13.5]}},"bounds":{"min":[-21,-1,-16],"max":[21,12,16]},"assets":[{"id":"79","slug":"lantern-watch-courtyard-cobble-tile","title":"Lantern Watch Courtyard Cobble Tile","summary":"A two metre courtyard tile of staggered stone pavers with edge curbs for medieval lanes and guard posts.","description":"A 2 m square road tile. Pavers are individually modeled with narrow gaps and consistent top height.\n\nMeasured bounds: 2.00 × 0.12 × 2.00 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Architecture uses a 2 m placement grid; decorative roof overhangs may extend beyond the grid. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-courtyard-cobble-tile","cdnUrl":"https://cdn.3dassets.dev/assets/79/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-courtyard-cobble-tile","thumbnailUrl":"https://cdn.3dassets.dev/assets/79/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/79/v1/poster.webp","blurhash":"U6Bz8[%200Ri?boyM{f700R*~pWB4URjofRj","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"modular","title":"Modular"},{"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":19656,"triangles":276,"vertices":828,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1,0.000013198659301917604,-1],"max":[1,0.11993835126975398,1]},"sizeMeters":[2,0.12,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":12,"publishedAt":"2026-09-06T03:08:11.977Z","updatedAt":"2026-10-25T09:54:50.824Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/79/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchCourtyardCobbleTile(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/79/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/79/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/79/v1/model.glb\" alt=\"Lantern Watch Courtyard Cobble Tile\" 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/79/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/79/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"78","slug":"lantern-watch-stone-battlement-wall","title":"Lantern Watch Stone Battlement Wall","summary":"A two metre defensive wall with individual masonry blocks, a capped parapet and three raised merlons.","description":"A solid 2 m long wall module. Crenellations and mortar gaps are modeled geometry.\n\nMeasured bounds: 2.00 × 2.47 × 0.60 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Architecture uses a 2 m placement grid; decorative roof overhangs may extend beyond the grid. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-stone-battlement-wall","cdnUrl":"https://cdn.3dassets.dev/assets/78/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-stone-battlement-wall","thumbnailUrl":"https://cdn.3dassets.dev/assets/78/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/78/v1/poster.webp","blurhash":"U5DJIx?b009F8{?b_M4n00D*_2?aM{-;NG9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"modular","title":"Modular"},{"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":22688,"triangles":324,"vertices":972,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.999962931593646,0,-0.3000152627298414],"max":[0.999962931593646,2.4700000286102295,0.3000152627298414]},"sizeMeters":[2,2.47,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":11,"publishedAt":"2026-09-06T03:08:03.826Z","updatedAt":"2026-10-25T09:52:00.746Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/78/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchStoneBattlementWall(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/78/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/78/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/78/v1/model.glb\" alt=\"Lantern Watch Stone Battlement Wall\" 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/78/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/78/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"75","slug":"lantern-watch-stone-gatehouse","title":"Lantern Watch Stone Gatehouse","summary":"A compact medieval guardhouse with slate roof, barred windows, timber door and layered stone footings.","description":"A 2 m square closed watch house. Small brush style textures provide a coherent procedural painted finish.\n\nMeasured bounds: 2.32 × 3.15 × 2.42 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Architecture uses a 2 m placement grid; decorative roof overhangs may extend beyond the grid. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-stone-gatehouse","cdnUrl":"https://cdn.3dassets.dev/assets/75/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-stone-gatehouse","thumbnailUrl":"https://cdn.3dassets.dev/assets/75/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/75/v1/poster.webp","blurhash":"U1CP#2~E00C70:9sqt-R00D~cbHq}yZ?Gw-:","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"modular","title":"Modular"},{"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":43900,"triangles":636,"vertices":1908,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-1.1610583666694196,0,-1.2100080910648432],"max":[1.1610583666694196,3.1500000953674316,1.2100080910648432]},"sizeMeters":[2.322,3.15,2.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":11,"publishedAt":"2026-09-06T03:07:56.946Z","updatedAt":"2026-10-25T09:54:17.691Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/75/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchStoneGatehouse(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/75/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/75/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/75/v1/model.glb\" alt=\"Lantern Watch Stone Gatehouse\" 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/75/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/75/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"77","slug":"lantern-watch-stone-courtyard-arch","title":"Lantern Watch Stone Courtyard Arch","summary":"A two metre stone gateway with separated voussoir blocks and a brass colored keystone for medieval courtyards.","description":"An open arch with 1.3 m clear width between piers and a 2 m placement footprint.\n\nMeasured bounds: 2.14 × 2.66 × 0.65 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Architecture uses a 2 m placement grid; decorative roof overhangs may extend beyond the grid. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-stone-courtyard-arch","cdnUrl":"https://cdn.3dassets.dev/assets/77/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-stone-courtyard-arch","thumbnailUrl":"https://cdn.3dassets.dev/assets/77/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/77/v1/poster.webp","blurhash":"U7Ci:U%L00of~U-pDk9G00R*-;Rk9ZR*t7Rj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"modular","title":"Modular"},{"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":16324,"triangles":204,"vertices":612,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.0712931629000984,0,-0.32496458237254194],"max":[1.0712931629000984,2.662432803732797,0.32496458237254194]},"sizeMeters":[2.143,2.662,0.65],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:02.216Z","updatedAt":"2026-10-25T09:58:58.681Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/77/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchStoneCourtyardArch(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/77/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/77/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/77/v1/model.glb\" alt=\"Lantern Watch Stone Courtyard Arch\" 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/77/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/77/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"76","slug":"lantern-watch-open-timber-watchtower","title":"Lantern Watch Open Timber Watchtower","summary":"An elevated open watch platform with slate canopy, ladder, timber braces and waist high rails for medieval outposts.","description":"A 2 m square tower with a platform at 2.4 m. Ladder and rails are modeled; traversal logic belongs in the game.\n\nMeasured bounds: 2.36 × 4.71 × 2.74 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Architecture uses a 2 m placement grid; decorative roof overhangs may extend beyond the grid. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-open-timber-watchtower","cdnUrl":"https://cdn.3dassets.dev/assets/76/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-open-timber-watchtower","thumbnailUrl":"https://cdn.3dassets.dev/assets/76/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/76/v1/poster.webp","blurhash":"U597Faxt00IW~qNG9E-p0gNG=_-V9ER+x]xD","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"modular","title":"Modular"},{"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":30504,"triangles":440,"vertices":1320,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.1819737113624103,0,-1.2099356068538734],"max":[1.1819737113624103,4.713366508483887,1.529159368412406]},"sizeMeters":[2.364,4.713,2.739],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":10,"publishedAt":"2026-09-06T03:07:59.835Z","updatedAt":"2026-10-05T06:21:10.608Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/76/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchOpenTimberWatchtower(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/76/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/76/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/76/v1/model.glb\" alt=\"Lantern Watch Open Timber Watchtower\" 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/76/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/76/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"80","slug":"lantern-watch-arched-courtyard-bridge","title":"Lantern Watch Arched Courtyard Bridge","summary":"A small raised stone bridge with stepped approaches and low timber rails for medieval drainage channels.","description":"A 2 m long pedestrian bridge along Z. Steps lead to a level center deck; the underside remains open.\n\nMeasured bounds: 1.45 × 0.69 × 2.00 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Architecture uses a 2 m placement grid; decorative roof overhangs may extend beyond the grid. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-arched-courtyard-bridge","cdnUrl":"https://cdn.3dassets.dev/assets/80/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-arched-courtyard-bridge","thumbnailUrl":"https://cdn.3dassets.dev/assets/80/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/80/v1/poster.webp","blurhash":"UADcH#~p01D%MwMyR*t700D*%MX9x^%MxuS2","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"modular","title":"Modular"},{"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":11804,"triangles":144,"vertices":432,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.7249366740928374,0.00003358228135252883,-1],"max":[0.7249366740928374,0.6899714747295828,1]},"sizeMeters":[1.45,0.69,2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:14.947Z","updatedAt":"2026-10-05T12:59:00.682Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/80/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchArchedCourtyardBridge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/80/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/80/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/80/v1/model.glb\" alt=\"Lantern Watch Arched Courtyard Bridge\" 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/80/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/80/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"87","slug":"lantern-watch-courtyard-lantern-post","title":"Lantern Watch Courtyard Lantern Post","summary":"A timber lantern post with angled hanging bracket, warm glass panels and a stone mounting base.","description":"A static emissive lantern on a post. Emissive surfaces do not include a glTF light or dynamic light source.\n\nMeasured bounds: 0.95 × 2.26 × 0.44 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-courtyard-lantern-post","cdnUrl":"https://cdn.3dassets.dev/assets/87/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-courtyard-lantern-post","thumbnailUrl":"https://cdn.3dassets.dev/assets/87/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/87/v1/poster.webp","blurhash":"U27^-{~W0000#R9G5S~pQ,%Mtn4oQ-%MyD9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":28540,"triangles":420,"vertices":1260,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-0.17499999701976776,0.000011749200200694698,-0.2200234597387118],"max":[0.7700234567584796,2.259999990463257,0.2200234597387118]},"sizeMeters":[0.945,2.26,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":11,"publishedAt":"2026-09-06T03:08:33.110Z","updatedAt":"2026-10-05T13:02:36.203Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/87/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchCourtyardLanternPost(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/87/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/87/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/87/v1/model.glb\" alt=\"Lantern Watch Courtyard Lantern Post\" 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/87/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/87/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"86","slug":"lantern-watch-stone-winding-well","title":"Lantern Watch Stone Winding Well","summary":"An open stone well with timber winding frame, suspended bucket and pitched slate cover for medieval courtyards.","description":"A hollow ring well with static crank and rope. Dark water is represented by a solid inset disk.\n\nMeasured bounds: 1.83 × 2.19 × 1.52 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-stone-winding-well","cdnUrl":"https://cdn.3dassets.dev/assets/86/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-stone-winding-well","thumbnailUrl":"https://cdn.3dassets.dev/assets/86/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/86/v1/poster.webp","blurhash":"U3BM*=x]00Vs?IIU$w_300E2~q={?9W?03Mc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":50668,"triangles":744,"vertices":2232,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-0.8820268104033239,0,-0.760007818701226],"max":[0.9500061636447005,2.186599016189575,0.760007818701226]},"sizeMeters":[1.832,2.187,1.52],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:29.190Z","updatedAt":"2026-10-05T12:59:07.473Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/86/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchStoneWindingWell(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/86/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/86/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/86/v1/model.glb\" alt=\"Lantern Watch Stone Winding Well\" 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/86/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/86/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"97","slug":"lantern-watch-courtyard-flame-brazier","title":"Lantern Watch Courtyard Flame Brazier","summary":"A three leg iron brazier with an open rim, glowing coals and a static modeled flame for medieval courtyards.","description":"An emissive decorative fire prop. Flame and coals are static meshes with no particles or point lights.\n\nMeasured bounds: 0.61 × 1.12 × 0.61 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-courtyard-flame-brazier","cdnUrl":"https://cdn.3dassets.dev/assets/97/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-courtyard-flame-brazier","thumbnailUrl":"https://cdn.3dassets.dev/assets/97/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/97/v1/poster.webp","blurhash":"UA9Qa9xt00M|^%kB9HRj0MRj?Gxt02ah~Uoe","category":{"slug":"effects-primitives","title":"Effects & Primitives"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":25880,"triangles":378,"vertices":1134,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.3050000071525574,0,-0.3050000071525574],"max":[0.30968219440786365,1.1161412000656128,0.3050000071525574]},"sizeMeters":[0.615,1.116,0.61],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":11,"publishedAt":"2026-09-06T03:08:52.699Z","updatedAt":"2026-10-25T08:44:37.758Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/97/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchCourtyardFlameBrazier(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/97/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/97/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/97/v1/model.glb\" alt=\"Lantern Watch Courtyard Flame Brazier\" 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/97/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/97/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"89","slug":"lantern-watch-guardroom-bench","title":"Lantern Watch Guardroom Bench","summary":"A narrow timber bench with carved feet, plank seat and a lower stretcher for watch houses and courtyards.","description":"A 1.5 m long bench with a 0.45 m seat height and two trestle supports.\n\nMeasured bounds: 1.50 × 0.53 × 0.46 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-guardroom-bench","cdnUrl":"https://cdn.3dassets.dev/assets/89/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-guardroom-bench","thumbnailUrl":"https://cdn.3dassets.dev/assets/89/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/89/v1/poster.webp","blurhash":"U8CYzB%29a={^*~UWU9u00x?t7EL57E3%LoL","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"interior","title":"Interior"},{"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":16276,"triangles":204,"vertices":612,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.75,-0.000040599154346288024,-0.23001037629322185],"max":[0.75,0.5279957163387373,0.23001037629322185]},"sizeMeters":[1.5,0.528,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":8,"publishedAt":"2026-09-06T03:08:38.360Z","updatedAt":"2026-10-05T12:59:09.023Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/89/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchGuardroomBench(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/89/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/89/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/89/v1/model.glb\" alt=\"Lantern Watch Guardroom Bench\" 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/89/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/89/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"96","slug":"lantern-watch-lantern-watch-token","title":"Lantern Watch Lantern Watch Token","summary":"A thick bronze token with raised lantern emblem and slate inset for watch quests and inventory graphics.","description":"A static front facing 3D badge with a modeled lantern motif and beveled circular rim.\n\nMeasured bounds: 0.60 × 0.60 × 0.12 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-lantern-watch-token","cdnUrl":"https://cdn.3dassets.dev/assets/96/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-lantern-watch-token","thumbnailUrl":"https://cdn.3dassets.dev/assets/96/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/96/v1/poster.webp","blurhash":"U7C6lTXT00Vr^%xtIpIU00xB?wR:IpRQNHNg","category":{"slug":"icons","title":"3D Icons & UI"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"kit","title":"Kit / Set"}],"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":25704,"triangles":356,"vertices":1068,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.30000001192092896,0,-0.02999030357489866],"max":[0.30000001192092896,0.6000000238418579,0.08499572706134037]},"sizeMeters":[0.6,0.6,0.115],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:50.870Z","updatedAt":"2026-10-12T06:54:36.891Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/96/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchLanternWatchToken(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/96/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/96/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/96/v1/model.glb\" alt=\"Lantern Watch Lantern Watch Token\" 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/96/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/96/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"95","slug":"lantern-watch-tavern-cheese-wheel","title":"Lantern Watch Tavern Cheese Wheel","summary":"A small golden cheese wheel with modeled rind band and a wedge resting beside it for medieval food displays.","description":"A round cheese and separate display wedge combined into one static prop. The wheel has no cutaway.\n\nMeasured bounds: 0.71 × 0.14 × 0.45 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-tavern-cheese-wheel","cdnUrl":"https://cdn.3dassets.dev/assets/95/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-tavern-cheese-wheel","thumbnailUrl":"https://cdn.3dassets.dev/assets/95/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/95/v1/poster.webp","blurhash":"UAC6c6=_00E,-m%LIpE200Ip~Ur;IvD%$~-:","category":{"slug":"food","title":"Food & Drink"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":34716,"triangles":524,"vertices":1572,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.22699999809265137,-0.000011172166410416962,-0.2270072593479629],"max":[0.47999998927116394,0.13999786295109745,0.2270072593479629]},"sizeMeters":[0.707,0.14,0.454],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":8,"publishedAt":"2026-09-06T03:08:49.100Z","updatedAt":"2026-10-05T12:59:12.776Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/95/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchTavernCheeseWheel(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/95/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/95/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/95/v1/model.glb\" alt=\"Lantern Watch Tavern Cheese Wheel\" 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/95/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/95/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"94","slug":"lantern-watch-courtyard-smith-anvil","title":"Lantern Watch Courtyard Smith Anvil","summary":"A compact iron anvil on a timber stump with tapered horn, heel block and securing bands for medieval work areas.","description":"A static smithing prop with a flat striking surface and stylized tapered horn.\n\nMeasured bounds: 0.87 × 0.93 × 0.65 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-courtyard-smith-anvil","cdnUrl":"https://cdn.3dassets.dev/assets/94/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-courtyard-smith-anvil","thumbnailUrl":"https://cdn.3dassets.dev/assets/94/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/94/v1/poster.webp","blurhash":"U484Y*~W0000%$t6McM}4oNH%Mt4ROR.kXob","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":11732,"triangles":124,"vertices":372,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.3400000035762787,-0.00002030313613449186,-0.32335642907338397],"max":[0.5299999713897705,0.930020131028182,0.32335642907338397]},"sizeMeters":[0.87,0.93,0.647],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:47.127Z","updatedAt":"2026-10-08T07:19:44.086Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/94/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchCourtyardSmithAnvil(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/94/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/94/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/94/v1/model.glb\" alt=\"Lantern Watch Courtyard Smith Anvil\" 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/94/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/94/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"91","slug":"lantern-watch-staved-rain-barrel","title":"Lantern Watch Staved Rain Barrel","summary":"A tapered wooden rain barrel with an open dark top, three iron hoops and a front brass spigot.","description":"A static open barrel with inset water disk and modeled tap. No liquid simulation.\n\nMeasured bounds: 0.73 × 0.77 × 0.82 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-staved-rain-barrel","cdnUrl":"https://cdn.3dassets.dev/assets/91/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-staved-rain-barrel","thumbnailUrl":"https://cdn.3dassets.dev/assets/91/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/91/v1/poster.webp","blurhash":"U5AJyW%1009aYRM|vfx[03IV^N%LxUsmRSSg","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":41800,"triangles":756,"vertices":2268,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.36500000953674316,0,-0.36500000953674316],"max":[0.36500000953674316,0.7716495197770101,0.45598074793815613]},"sizeMeters":[0.73,0.772,0.821],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:41.985Z","updatedAt":"2026-10-12T08:42:31.518Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/91/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchStavedRainBarrel(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/91/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/91/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/91/v1/model.glb\" alt=\"Lantern Watch Staved Rain Barrel\" 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/91/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/91/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"90","slug":"lantern-watch-ironbound-watch-chest","title":"Lantern Watch Ironbound Watch Chest","summary":"A timber storage chest with a rounded lid, broad metal straps, corner feet and front latch for medieval rooms.","description":"A closed static chest. Lid curvature uses a faceted half barrel silhouette and does not animate.\n\nMeasured bounds: 0.85 × 0.65 × 0.55 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-ironbound-watch-chest","cdnUrl":"https://cdn.3dassets.dev/assets/90/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-ironbound-watch-chest","thumbnailUrl":"https://cdn.3dassets.dev/assets/90/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/90/v1/poster.webp","blurhash":"U2BfhF~o00i^9w=_-.oI000L%2?F=sEl9a9a","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":31828,"triangles":456,"vertices":1368,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.42500001192092896,0.00000854369266449495,-0.24999811840131225],"max":[0.42500001192092896,0.650010829250204,0.2979886741120047]},"sizeMeters":[0.85,0.65,0.548],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":10,"publishedAt":"2026-09-06T03:08:40.093Z","updatedAt":"2026-10-05T12:59:08.902Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/90/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchIronboundWatchChest(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/90/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/90/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/90/v1/model.glb\" alt=\"Lantern Watch Ironbound Watch Chest\" 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/90/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/90/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"93","slug":"lantern-watch-leaf-head-watch-spear","title":"Lantern Watch Leaf Head Watch Spear","summary":"A long wooden watch spear with a broad leaf shaped head, bronze socket and wrapped grip for medieval guards.","description":"A static upright polearm with a modeled faceted point and compact grip rings.\n\nMeasured bounds: 0.21 × 2.20 × 0.08 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-leaf-head-watch-spear","cdnUrl":"https://cdn.3dassets.dev/assets/93/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-leaf-head-watch-spear","thumbnailUrl":"https://cdn.3dassets.dev/assets/93/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/93/v1/poster.webp","blurhash":"U36tt4xt00D*~qof00M{t-jcQ,W,yDj]MdWA","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"kit","title":"Kit / Set"}],"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":55312,"triangles":848,"vertices":2544,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.10499130222479934,0,-0.03999391775250264],"max":[0.10499130222479934,2.200000047683716,0.03999391775250264]},"sizeMeters":[0.21,2.2,0.08],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":10,"publishedAt":"2026-09-06T03:08:45.336Z","updatedAt":"2026-10-05T12:59:10.341Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/93/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchLeafHeadWatchSpear(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/93/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/93/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/93/v1/model.glb\" alt=\"Lantern Watch Leaf Head Watch Spear\" 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/93/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/93/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"92","slug":"lantern-watch-watch-heater-shield","title":"Lantern Watch Watch Heater Shield","summary":"A slate blue heater shield with thick brass rim, raised center boss and a reverse grip for medieval equipment.","description":"A static display shield with faceted lower taper. Front faces +Z and grip projects behind the shield.\n\nMeasured bounds: 0.70 × 0.85 × 0.25 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-watch-heater-shield","cdnUrl":"https://cdn.3dassets.dev/assets/92/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-watch-heater-shield","thumbnailUrl":"https://cdn.3dassets.dev/assets/92/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/92/v1/poster.webp","blurhash":"UBAc^{%f00D%~V%2D*M{D$xY%gIsIof6kDNI","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"kit","title":"Kit / Set"}],"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":45688,"triangles":692,"vertices":2076,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.35003129129032595,0,-0.14163740468743685],"max":[0.35003129129032595,0.8500000238418579,0.10998809978167054]},"sizeMeters":[0.7,0.85,0.252],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":13,"publishedAt":"2026-09-06T03:08:43.729Z","updatedAt":"2026-10-25T12:18:00.470Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/92/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchWatchHeaterShield(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/92/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/92/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/92/v1/model.glb\" alt=\"Lantern Watch Watch Heater Shield\" 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/92/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/92/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"98","slug":"lantern-watch-lantern-watch-banner","title":"Lantern Watch Lantern Watch Banner","summary":"A slate cloth watch banner with bronze trim, lantern crest and weighted hem for medieval guard posts.","description":"A rigid hanging banner with modeled cloth waves suggested by three shallow panel folds. Flat rear faces negative Z; no cloth simulation.\n\nMeasured bounds: 0.84 × 0.91 × 0.09 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-lantern-watch-banner","cdnUrl":"https://cdn.3dassets.dev/assets/98/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-lantern-watch-banner","thumbnailUrl":"https://cdn.3dassets.dev/assets/98/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/98/v1/poster.webp","blurhash":"U5BM-^-o00E2_2xuMxD%DNWB%%of%2-nM|4=","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"slug":"interior","title":"Interior"},{"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":25168,"triangles":336,"vertices":1008,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.4199901295827658,0,-0.030016043432687663],"max":[0.4199901295827658,0.9059807658195496,0.06251604410323991]},"sizeMeters":[0.84,0.906,0.093],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:54.510Z","updatedAt":"2026-10-05T13:03:01.065Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/98/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchLanternWatchBanner(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/98/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/98/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/98/v1/model.glb\" alt=\"Lantern Watch Lantern Watch Banner\" 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/98/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/98/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"88","slug":"lantern-watch-hanging-wall-lantern","title":"Lantern Watch Hanging Wall Lantern","summary":"A warm medieval lantern on a forged wall bracket with modeled cage bars, cap and mounting bolts.","description":"A wall mount light prop with a flat rear plate facing negative Z. Static emissive material only.\n\nMeasured bounds: 0.44 × 0.80 × 0.55 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-hanging-wall-lantern","cdnUrl":"https://cdn.3dassets.dev/assets/88/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-hanging-wall-lantern","thumbnailUrl":"https://cdn.3dassets.dev/assets/88/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/88/v1/poster.webp","blurhash":"U697hR?H004:4:IU-:?b01IU~U-;~Txt4;IV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":34708,"triangles":552,"vertices":1656,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.22000183438885132,0,-0.3275132349263644],"max":[0.22000183438885132,0.800000011920929,0.22001324803938627]},"sizeMeters":[0.44,0.8,0.548],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":14,"publishedAt":"2026-09-06T03:08:36.058Z","updatedAt":"2026-10-09T13:19:29.003Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/88/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchHangingWallLantern(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/88/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/88/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/88/v1/model.glb\" alt=\"Lantern Watch Hanging Wall Lantern\" 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/88/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/88/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"81","slug":"lantern-watch-lantern-guard-figure","title":"Lantern Watch Lantern Guard Figure","summary":"A static medieval watch guard with a slate tabard, helmet, belt and lantern held beside the body.","description":"An unrigged standing humanoid figure with modeled boots, mitten hands and open face helmet. No skinning or animation.\n\nMeasured bounds: 0.82 × 1.45 × 0.38 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-lantern-guard-figure","cdnUrl":"https://cdn.3dassets.dev/assets/81/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-lantern-guard-figure","thumbnailUrl":"https://cdn.3dassets.dev/assets/81/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/81/v1/poster.webp","blurhash":"U67ndzt700NFkroznhRP4Tj]?wR*IARjtS%M","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":77244,"triangles":1308,"vertices":3924,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-0.36498610268278153,0,-0.18501671250187293],"max":[0.45200307739107676,1.4500000476837158,0.19002282013666147]},"sizeMeters":[0.817,1.45,0.375],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":11,"publishedAt":"2026-09-06T03:08:17.480Z","updatedAt":"2026-10-05T12:59:00.506Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/81/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchLanternGuardFigure(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/81/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/81/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/81/v1/model.glb\" alt=\"Lantern Watch Lantern Guard Figure\" 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/81/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/81/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"82","slug":"lantern-watch-courtyard-rat","title":"Lantern Watch Courtyard Rat","summary":"A small static gray rat with rounded ears, pointed muzzle and long tapering tail for medieval courtyard detail.","description":"An unrigged ground animal with modeled whisker marks, paws and segmented tail.\n\nMeasured bounds: 0.41 × 0.29 × 0.80 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-courtyard-rat","cdnUrl":"https://cdn.3dassets.dev/assets/82/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-courtyard-rat","thumbnailUrl":"https://cdn.3dassets.dev/assets/82/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/82/v1/poster.webp","blurhash":"U36*aW_20001RjRjRjxu009G~q_2%M%MxuD%","category":{"slug":"animals","title":"Animals"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":68748,"triangles":1112,"vertices":3336,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.12502468941505807,0.000010414296817362612,-0.4595448076725006],"max":[0.28300742624100106,0.2869895861800198,0.3400000035762787]},"sizeMeters":[0.408,0.287,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":11,"publishedAt":"2026-09-06T03:08:19.549Z","updatedAt":"2026-10-25T10:29:54.520Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/82/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchCourtyardRat(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/82/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/82/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/82/v1/model.glb\" alt=\"Lantern Watch Courtyard Rat\" 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/82/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/82/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"83","slug":"lantern-watch-perched-courtyard-crow","title":"Lantern Watch Perched Courtyard Crow","summary":"A static dark crow with folded wings, angular beak and gripping feet for medieval walls and roof edges.","description":"An unrigged perched bird with a faceted body, layered wing outline and separated toes.\n\nMeasured bounds: 0.32 × 0.56 × 0.63 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-perched-courtyard-crow","cdnUrl":"https://cdn.3dassets.dev/assets/83/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-perched-courtyard-crow","thumbnailUrl":"https://cdn.3dassets.dev/assets/83/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/83/v1/poster.webp","blurhash":"U24oH0${009vNFob%2WF00kE.TnNRjRoR%$z","category":{"slug":"animals","title":"Animals"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":71352,"triangles":1208,"vertices":3624,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.1600000038743019,0,-0.3700000047683716],"max":[0.1600000038743019,0.5569046615756609,0.2599983946837638]},"sizeMeters":[0.32,0.557,0.63],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":9,"publishedAt":"2026-09-06T03:08:21.645Z","updatedAt":"2026-10-25T09:36:25.282Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/83/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchPerchedCourtyardCrow(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/83/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/83/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/83/v1/model.glb\" alt=\"Lantern Watch Perched Courtyard Crow\" 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/83/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/83/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"85","slug":"lantern-watch-climbing-wall-ivy","title":"Lantern Watch Climbing Wall Ivy","summary":"A branching ivy patch with individual heart shaped leaf clusters for dressing medieval stone walls.","description":"A static vertical foliage patch designed for placement just in front of a wall. No wall geometry is included.\n\nMeasured bounds: 0.85 × 1.61 × 0.07 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-climbing-wall-ivy","cdnUrl":"https://cdn.3dassets.dev/assets/85/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-climbing-wall-ivy","thumbnailUrl":"https://cdn.3dassets.dev/assets/85/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/85/v1/poster.webp","blurhash":"U25Oj8%f008{?utQIBMy4Ut7_MInMei|x[X5","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":108384,"triangles":1752,"vertices":5256,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.38997388090326107,0,-0.01804412245499399],"max":[0.4599739035530261,1.606662392616272,0.05000076248540815]},"sizeMeters":[0.85,1.607,0.068],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":13,"publishedAt":"2026-09-06T03:08:25.660Z","updatedAt":"2026-10-25T13:26:29.003Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/85/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchClimbingWallIvy(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/85/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/85/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/85/v1/model.glb\" alt=\"Lantern Watch Climbing Wall Ivy\" 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/85/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/85/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"84","slug":"lantern-watch-courtyard-cypress","title":"Lantern Watch Courtyard Cypress","summary":"A tall narrow cypress with tapered foliage lobes and exposed trunk for medieval gardens and watch post entrances.","description":"A narrow evergreen tree built from shaped faceted lobes around a branching trunk.\n\nMeasured bounds: 0.98 × 3.27 × 0.77 m (width × height × depth). One unit is one metre. Grounded origin at y=0, +Y up and front +Z. Static unrigged geometry. Place freely at world scale. Materials are shared within the Lantern Watch kit. CC0 original procedural geometry.\n\nPart of [Lantern Watch](/packs/lantern-watch).","status":"published","url":"https://3dassets.dev/assets/lantern-watch-courtyard-cypress","cdnUrl":"https://cdn.3dassets.dev/assets/84/v1/model.glb","downloadUrl":"https://3dassets.dev/download/lantern-watch-courtyard-cypress","thumbnailUrl":"https://cdn.3dassets.dev/assets/84/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/84/v1/poster.webp","blurhash":"U44.bpRi00%MXkj[n6ay8xoz.kM{V{e:ocbb","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"medieval","title":"Medieval"},{"slug":"hand-painted","title":"Hand-painted"},{"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":45448,"triangles":704,"vertices":2112,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.530025628095151,0,-0.3825614191965781],"max":[0.4500256447844515,3.2699999809265137,0.3825614191965781]},"sizeMeters":[0.98,3.27,0.765],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"GPT-6 via Codex","downloads":10,"publishedAt":"2026-09-06T03:08:23.543Z","updatedAt":"2026-10-25T14:49:59.762Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/84/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LanternWatchCourtyardCypress(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/84/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/84/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/84/v1/model.glb\" alt=\"Lantern Watch Courtyard Cypress\" 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/84/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/84/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}