{"data":{"id":333,"slug":"printing-press-and-newspaper-office","title":"Printing Press and Newspaper Office","summary":"Fifty eight early twentieth century letterpress designs: a sectional rotary press, reels, flatbed and platen machines, a linecaster, type cases and stones, finishing benches, an editorial office and a modular works building, in an open topped works floor.","description":"Fifty eight distinct designs for an early twentieth century newspaper works, plus two assembled scenes. The press hall holds a sectional rotary web press in four butted sections, a drive unit, two printing units and the folder, fed by a two arm reel stand, spare reels on chocks and a five roller web path frame, with a flatbed cylinder press, a treadle platen jobbing press, a galley proof press, an ink fountain, a plate casting box, curved stereotype plates and a plate rack around them. The composing room has a hot metal linecasting machine with a matrix magazine and a blank keyboard, a twelve drawer type case cabinet, composing and imposing stones, a galley rack, galleys of set type, a locked up chase with its quoins and furniture, a furniture rack, a make-up table, a compositors stool, an ink slab with cans and a roller rack. Finishing and dispatch add a guillotine, a folding table, a bundling press, a wire stitcher, skids of newsprint, a waste bin of offcuts, a hand truck and a reel trolley. The editorial office has an editors desk, a typewriter, a candlestick telephone, a copy spike, a filing cabinet, a wall clock, a pigeonhole rack, a subs table, a light box, a photo enlarger, a proof board and a news board, with a panelled front counter and hatch. The building is a modular kit: brick, window and door wall bays on a 3.00 m bay and a 4.60 m eaves, 6.00 m works and boarded office floor tiles, a 12.00 m roof truss and roof deck bays, a works staircase, a floor drain, and the overhead drive, a 6.00 m line shafting bay with its belt drop and electric motor. Metres, +Y up, +Z forward, grounded origins throughout apart from the hung wall clock and the line shafting. Rigid node transform clips only: press cylinders, ink and web rollers, the reel, flywheels, the ink disc, the mould wheel, the line shaft and pulleys and the truck wheels turn, the platen swings, the guillotine blade and the bundling ram drop, type case, desk and filing drawers open, the goods doors and the counter hatch open, the casting box lid lifts, the typewriter carriage slides and the enlarger head runs up its column. The paper web, the drive belts, the telephone and motor cabling and the ink are static geometry and say so in their descriptions: flexible material and fluid need a joint per element or a shader, and neither is reachable with one rigid node transform. Linkages, the platen press treadle rods and the guillotine screw gear, are left static for the same reason. There are no people in the pack and no skinning anywhere. Nothing is branded: no real newspaper, publisher, press maker, typefoundry or news agency appears, and every printed surface is blank or carries abstract rule bars, so no masthead, headline or word is modelled in any language. Original AI assisted CC0 geometry.","url":"https://3dassets.dev/packs/printing-press-and-newspaper-office","coverUrl":"https://cdn.3dassets.dev/assets/37780/v1/poster.webp","assetCount":60,"aiGenerated":true,"aiGeneratedAssetCount":60,"aiModels":["Claude Opus 5"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":12769404,"totalTriangles":531424,"starterScene":{"id":"37780","slug":"printing-press-and-newspaper-office-news-d5e33c3b-starter-scene","title":"Newspaper Works Floor (Printing Press and Newspaper Office)","summary":"A 36 by 24 m newspaper works built from the wall and floor kit and left open topped on purpose, so the whole floor is walkable and in view from above: the back wall and both end walls are up, with factory windows and goods doors in them, and the overhead line shafting runs on...","description":"A 36 by 24 m newspaper works built from the wall and floor kit and left open topped on purpose, so the whole floor is walkable and in view from above: the back wall and both end walls are up, with factory windows and goods doors in them, and the overhead line shafting runs on the press bay only, on four 6 m hangers with three belt drops and the drive motor under it. There is no roof and no front wall. At the west end the rotary press runs as four butted sections from the drive unit through two printing units to the folder, fed by two reel stands and two web path roller frames, with spare reels, trolleys, the plate casting box and the plate rack behind it and two flatbed cylinder presses, two platen jobbing presses and a proof press in front. The middle of the floor is the composing room: three linecasting machines along the back wall, five type case cabinets beside them, two composing stones, the imposing stone with two chases locked up on it, two make-up tables, two galley racks and the furniture racks, with stools, loose galleys and chases where the work is. Across the front are the guillotine, the folding tables, the bundling presses and the wire stitchers, with skids of newsprint, waste bins and hand trucks between them. The east bay is the editorial office on a boarded floor: two editors desks with typewriters, telephones and copy spikes, the subs table, the filing cabinets, the pigeonhole rack, the light box and the enlarger, the proof board, the wall clock, the front counter with its hatch and two news boards at the street side. Every printed surface in the scene is blank or carries abstract rule bars: nothing spells a masthead, a headline or a word.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-news-d5e33c3b-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/37780/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-news-d5e33c3b-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/37780/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37780/v1/poster.webp","blurhash":"U3AA5Z?w00R4=w$*S5Na00H??vXTAaNaRjae","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"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":5229648,"triangles":234312,"vertices":244154,"meshes":410,"materials":12,"textures":2,"animations":[],"boundingBox":{"min":[-18.28992203132278,-0.10017242920601037,-12.289922031322781],"max":[18.28992203132278,4.760000228881836,12]},"sizeMeters":[36.58,4.86,24.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:52.902Z","updatedAt":"2026-09-12T05:47:53.069Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37780/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NewspaperWorksFloorPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37780/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37780/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37780/v1/model.glb\" alt=\"Newspaper Works Floor (Printing Press and Newspaper Office)\" 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/37780/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/37780/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"37721","slug":"printing-press-and-newspaper-office-rotary-press-drive-103c30ad","title":"Rotary Press Drive Unit (Printing Press and Newspaper Office)","summary":"Free 3D model of the drive unit of a newspaper rotary web press: a 3.6 m cast iron section with turning cylinders, gearing and a control stand, as a game asset.","description":"Free 3D model of the drive unit of a newspaper rotary web press: a 3.6 m cast iron section with turning cylinders, gearing and a control stand, as a game asset. Dimensions 2.79 by 3.56 by 2.28 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cylinder-drive-upper at (0.00, 2.34, -0.18) m; cylinder-drive-lower at (0.00, 1.42, -0.18) m; roller-drive-lead at (0.00, 1.90, 0.62) m. The first section of a sectional rotary press, 2.5 m wide on a 1.9 m deep base, bolted through cast side frames. Butt it against the printing section and the folder to build a press of any length. The two drive cylinders and the lead roller turn on the spin clip. The gear train, the enamelled guard, the handwheel and the control stand are fixed, and the threaded paper web is static geometry: flexible sheet needs a joint per span or a shader, and neither is reachable with a rigid node transform. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-rotary-press-drive-103c30ad","cdnUrl":"https://cdn.3dassets.dev/assets/37721/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-rotary-press-drive-103c30ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/37721/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37721/v1/poster.webp","blurhash":"U27BQ7_30000~Wx^9YIS00IU?a-qEKRl-qxW","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":75508,"triangles":2956,"vertices":3409,"meshes":9,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-1.3849999904632568,0,-1.1620287895202637],"max":[1.410057651074175,3.559999942779541,1.1222475921990915]},"sizeMeters":[2.795,3.56,2.284],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:20.973Z","updatedAt":"2026-09-12T05:47:21.075Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37721/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function RotaryPressDriveUnitPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37721/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37721/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37721/v1/model.glb\" alt=\"Rotary Press Drive Unit (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37721/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37721/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37722","slug":"printing-press-and-newspaper-office-rotary-press-print-7a022c65","title":"Rotary Press Printing Unit (Printing Press and Newspaper Office)","summary":"Free 3D model of a printing unit from a newspaper rotary press: a 3.9 m cast section with four turning cylinders, an ink train and a service catwalk, as a game asset.","description":"Free 3D model of a printing unit from a newspaper rotary press: a 3.9 m cast section with four turning cylinders, an ink train and a service catwalk, as a game asset. Dimensions 3.08 by 3.82 by 2.47 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cylinder-plate-upper at (0.00, 2.86, -0.30) m; cylinder-impression-upper at (0.00, 2.06, -0.30) m; cylinder-impression-lower at (0.00, 1.24, -0.30) m; cylinder-plate-lower at (0.00, 0.44, -0.30) m; roller-ink-1 at (0.00, 2.92, 0.50) m; roller-ink-2 at (0.00, 2.40, 0.50) m; roller-ink-3 at (0.00, 1.88, 0.50) m. One printing section of a sectional rotary press, 2.5 m wide and 1.9 m deep, printing both sides of the web between two plate and impression pairs. Place it in a row between the drive unit and the folder. The four cylinders and the three ink rollers each turn on the spin clip. The catwalk, the ladder, the handwheel and the ink fountain casing are fixed, and the web threaded through the stack is static geometry, because flexible sheet cannot be carried by a rigid node transform. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-rotary-press-print-7a022c65","cdnUrl":"https://cdn.3dassets.dev/assets/37722/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-rotary-press-print-7a022c65","thumbnailUrl":"https://cdn.3dassets.dev/assets/37722/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37722/v1/poster.webp","blurhash":"U47d^5_N008_.9ozROn,009FWB%Nt8RjD$M_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":83080,"triangles":3736,"vertices":4387,"meshes":18,"materials":5,"textures":0,"animations":["spin"],"boundingBox":{"min":[-1.3650000095367432,0,-0.9999126995887166],"max":[1.7200000286102295,3.819999933242798,1.4699239542306872]},"sizeMeters":[3.085,3.82,2.47],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:19.962Z","updatedAt":"2026-09-12T05:47:20.074Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37722/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function RotaryPressPrintingUnitPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37722/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37722/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37722/v1/model.glb\" alt=\"Rotary Press Printing Unit (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37722/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37722/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37724","slug":"printing-press-and-newspaper-office-rotary-press-folde-9126ed8a","title":"Rotary Press Folder (Printing Press and Newspaper Office)","summary":"Free 3D model of the folder of a newspaper rotary press: a 2.9 m section with a former board, turning folding and cutting cylinders and a delivery table of folded blank papers, as a game asset.","description":"Free 3D model of the folder of a newspaper rotary press: a 2.9 m section with a former board, turning folding and cutting cylinders and a delivery table of folded blank papers, as a game asset. Dimensions 2.52 by 3.02 by 3.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cylinder-folding-upper at (0.00, 1.02, -0.24) m; cylinder-folding-lower at (0.00, 0.42, -0.24) m; cylinder-cutting at (0.00, 1.02, 0.40) m; roller-delivery-1 at (0.00, 0.52, 0.86) m; roller-delivery-2 at (0.00, 0.52, 1.26) m. The delivery end of a sectional rotary press, 2.3 m wide, taking the web over a triangular former and cutting and folding it into papers on the delivery table. The two folding cylinders, the cutting cylinder and the two delivery rollers turn on the spin clip. The former board, the counter head, the handwheel and the stacked papers are fixed. Every folded paper on the table is blank: no masthead, headline or text of any kind is modelled. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-rotary-press-folde-9126ed8a","cdnUrl":"https://cdn.3dassets.dev/assets/37724/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-rotary-press-folde-9126ed8a","thumbnailUrl":"https://cdn.3dassets.dev/assets/37724/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37724/v1/poster.webp","blurhash":"U17BQ6^R00009?8{nQ_N00b^~Xt+-q_No|00","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":89652,"triangles":3760,"vertices":4188,"meshes":12,"materials":5,"textures":0,"animations":["spin"],"boundingBox":{"min":[-1.2649999856948853,0.00005040322435112543,-1.000053407391583],"max":[1.25,3.0199999809265137,1.9983280756968598]},"sizeMeters":[2.515,3.02,2.998],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:21.016Z","updatedAt":"2026-09-12T05:47:21.109Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37724/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function RotaryPressFolderPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37724/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37724/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37724/v1/model.glb\" alt=\"Rotary Press Folder (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37724/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37724/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37723","slug":"printing-press-and-newspaper-office-reel-stand-fc0ebd34","title":"Reel Stand (Printing Press and Newspaper Office)","summary":"Free 3D model of a two arm newsprint reel stand with a loaded 1.05 m reel that turns, for a newspaper press hall game asset kit.","description":"Free 3D model of a two arm newsprint reel stand with a loaded 1.05 m reel that turns, for a newspaper press hall game asset kit. Dimensions 2.57 by 1.90 by 1.59 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: reel at (0.00, 1.22, 0.00) m. A cast iron reel stand 2.3 m across carrying a full reel of newsprint on a steel spindle between two screw arms, with the web led away over the top. The reel turns on the spin clip; the arms, the spindle screws and the handwheels are fixed and the web leaving the reel is static geometry, because flexible sheet cannot be carried by a rigid node transform. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-reel-stand-fc0ebd34","cdnUrl":"https://cdn.3dassets.dev/assets/37723/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-reel-stand-fc0ebd34","thumbnailUrl":"https://cdn.3dassets.dev/assets/37723/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37723/v1/poster.webp","blurhash":"UBA,%r-;00Dj~p%M9FD%00M{_3xu00Io_3%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":69924,"triangles":2504,"vertices":3098,"meshes":6,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-1.284999966621399,-2.6843282030508675e-7,-0.6699670324335166],"max":[1.284999966621399,1.8978045088263942,0.9157396252523861]},"sizeMeters":[2.57,1.898,1.586],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:19.978Z","updatedAt":"2026-09-12T05:47:20.096Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37723/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ReelStandPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37723/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37723/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37723/v1/model.glb\" alt=\"Reel Stand (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37723/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37723/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37726","slug":"printing-press-and-newspaper-office-paper-reel-eda9032c","title":"Paper Reel (Printing Press and Newspaper Office)","summary":"Free 3D model of a reel of newsprint on timber chocks: a 1.05 m diameter, 1.6 m wide roll waiting beside the press, as a game asset.","description":"Free 3D model of a reel of newsprint on timber chocks: a 1.05 m diameter, 1.6 m wide roll waiting beside the press, as a game asset. Dimensions 1.34 by 1.19 by 1.68 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A full reel of newsprint 1.05 m in diameter and 1.62 m wide, resting on two chocked timber skids so it cannot run. The end papers are darkened and a blank label is pasted on the near end; nothing on it is readable, because no text is modelled. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-paper-reel-eda9032c","cdnUrl":"https://cdn.3dassets.dev/assets/37726/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-paper-reel-eda9032c","thumbnailUrl":"https://cdn.3dassets.dev/assets/37726/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37726/v1/poster.webp","blurhash":"UGD]VdD*00-p?^MxIAtR00xa?bWC00tR-;ni","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":49460,"triangles":1084,"vertices":1323,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.6700000166893005,-0.00000531875863810094,-0.8399999737739563],"max":[0.6700000166893005,1.1849970642571523,0.8399999737739563]},"sizeMeters":[1.34,1.185,1.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:22.731Z","updatedAt":"2026-09-12T05:47:22.935Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37726/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PaperReelPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37726/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37726/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37726/v1/model.glb\" alt=\"Paper Reel (Printing Press and Newspaper Office)\" 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/37726/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/37726/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37725","slug":"printing-press-and-newspaper-office-web-path-roller-se-90e2f329","title":"Web Path Roller Set (Printing Press and Newspaper Office)","summary":"Free 3D model of a web path roller stand for a rotary press: a 2.8 m frame of five turning lead rollers with the paper web laced over them, as a game asset.","description":"Free 3D model of a web path roller stand for a rotary press: a 2.8 m frame of five turning lead rollers with the paper web laced over them, as a game asset. Dimensions 2.18 by 2.70 by 0.86 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: roller-web-1 at (0.00, 0.58, -0.16) m; roller-web-2 at (0.00, 1.12, 0.16) m; roller-web-3 at (0.00, 1.66, -0.16) m; roller-web-4 at (0.00, 2.20, 0.16) m; roller-web-5 at (0.00, 2.58, -0.10) m. A pair of cast standards 1.9 m apart carrying five lead rollers, the frame that turns a web between press sections or leads it up to the folder. Each of the five rollers is its own node and turns on the spin clip. The laced web is static geometry: flexible sheet needs a joint per span or a shader and neither is reachable with a rigid node transform. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-web-path-roller-se-90e2f329","cdnUrl":"https://cdn.3dassets.dev/assets/37725/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-web-path-roller-se-90e2f329","thumbnailUrl":"https://cdn.3dassets.dev/assets/37725/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37725/v1/poster.webp","blurhash":"U78z=O-p009F_3xu9FD%00WB~qt7D%j[-;of","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33220,"triangles":1528,"vertices":1886,"meshes":12,"materials":3,"textures":0,"animations":["spin"],"boundingBox":{"min":[-1.089945696302266,0,-0.4300042801854754],"max":[1.089945696302266,2.700000047683716,0.4300042801854754]},"sizeMeters":[2.18,2.7,0.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:21.850Z","updatedAt":"2026-09-12T05:47:21.957Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37725/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WebPathRollerSetPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37725/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37725/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37725/v1/model.glb\" alt=\"Web Path Roller Set (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37725/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37725/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37727","slug":"printing-press-and-newspaper-office-flatbed-cylinder-p-37e01b3b","title":"Flatbed Cylinder Press (Printing Press and Newspaper Office)","summary":"Free 3D model of a flatbed cylinder printing press: a 2.8 m cast iron machine with a turning impression cylinder, ink rollers, a flywheel and a forme of type on the bed, as a game asset.","description":"Free 3D model of a flatbed cylinder printing press: a 2.8 m cast iron machine with a turning impression cylinder, ink rollers, a flywheel and a forme of type on the bed, as a game asset. Dimensions 2.42 by 2.52 by 3.53 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cylinder-impression at (0.00, 2.05, 0.52) m; roller-ink-1 at (0.00, 1.61, 0.90) m; roller-ink-2 at (0.00, 1.61, 1.20) m; flywheel at (1.18, 0.77, -0.40) m. A single revolution flatbed press 2.4 m wide by 2.8 m long, with the forme locked face up on the travelling bed, a feedboard of blank sheets at one end and the delivery pile at the other. The impression cylinder, the two ink rollers and the flywheel turn on the spin clip. The bed, the ink table, the feedboard and the sheet piles are fixed. The type on the bed is blank lead bodies in abstract rows: no letter, word or headline is modelled anywhere on it, and every sheet in the piles is plain. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-flatbed-cylinder-p-37e01b3b","cdnUrl":"https://cdn.3dassets.dev/assets/37727/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-flatbed-cylinder-p-37e01b3b","thumbnailUrl":"https://cdn.3dassets.dev/assets/37727/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37727/v1/poster.webp","blurhash":"U59QdT%300M|_NE19F={00IT%M%MD%?H-;9u","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":221200,"triangles":7004,"vertices":9859,"meshes":12,"materials":6,"textures":1,"animations":["spin"],"boundingBox":{"min":[-1.169979251485743,9.536743172944284e-9,-1.6621041297912598],"max":[1.2500106817752483,2.5200000190734864,1.8700000047683716]},"sizeMeters":[2.42,2.52,3.532],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:23.748Z","updatedAt":"2026-09-12T05:47:23.947Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37727/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FlatbedCylinderPressPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37727/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37727/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37727/v1/model.glb\" alt=\"Flatbed Cylinder Press (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37727/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37727/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37728","slug":"printing-press-and-newspaper-office-platen-jobbing-pre-76058e43","title":"Platen Jobbing Press (Printing Press and Newspaper Office)","summary":"Free 3D model of a treadle platen jobbing press: a 2.4 m tall clamshell press with a turning ink disc, a flywheel and a platen that closes, as a game asset.","description":"Free 3D model of a treadle platen jobbing press: a 2.4 m tall clamshell press with a turning ink disc, a flywheel and a platen that closes, as a game asset. Dimensions 1.32 by 2.48 by 1.21 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: inkdisc at (0.00, 2.06, -0.10) m; platen at (0.00, 0.44, 0.28) m; flywheel at (0.54, 0.74, -0.02) m. A cast iron platen press 1.0 m wide and 1.5 m deep with a treadle, a flywheel and a stack of blank stock on the feed shelf. The platen closes onto the bed on the open and close clips, and the ink disc and the flywheel turn on the spin clip. The treadle, the frame and the grippers are fixed; the connecting linkage between treadle, crank and platen is left static, because a linkage cannot be carried by one rigid node transform per part and faking it costs a consumer more than it gives. The forme on the bed is blank lead bodies in abstract rows, not text. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open, close and spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-platen-jobbing-pre-76058e43","cdnUrl":"https://cdn.3dassets.dev/assets/37728/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-platen-jobbing-pre-76058e43","thumbnailUrl":"https://cdn.3dassets.dev/assets/37728/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37728/v1/poster.webp","blurhash":"U15#bB~U00009IItO=bb0KX4^*$kMKm-?G.7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":96728,"triangles":2604,"vertices":3474,"meshes":12,"materials":8,"textures":1,"animations":["open","close","spin"],"boundingBox":{"min":[-0.7200000286102295,0,-0.5849860501289368],"max":[0.6049989477556325,2.4800000166893006,0.6299935951494707]},"sizeMeters":[1.325,2.48,1.215],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:22.918Z","updatedAt":"2026-09-12T05:47:23.045Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37728/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PlatenJobbingPressPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37728/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37728/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37728/v1/model.glb\" alt=\"Platen Jobbing Press (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37728/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37728/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37729","slug":"printing-press-and-newspaper-office-proofing-press-a9b284de","title":"Proofing Press (Printing Press and Newspaper Office)","summary":"Free 3D model of a galley proofing press: a 2.5 m bench press with a rolling cylinder carriage, a forme of type on the bed and a pulled proof sheet, as a game asset.","description":"Free 3D model of a galley proofing press: a 2.5 m bench press with a rolling cylinder carriage, a forme of type on the bed and a pulled proof sheet, as a game asset. Dimensions 1.72 by 1.38 by 2.61 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cylinder-proof at (0.00, 1.18, 0.74) m. A proof press 1.3 m wide by 2.5 m long with the forme on a steel bed and a heavy cylinder carriage run over it by hand to pull a proof. The cylinder is a node and turns on the spin clip; the bed, the rails and the carriage handle are fixed. The type on the bed and the pulled proof both carry abstract marks only: blank lead bodies and two rule bars, with no letter or word modelled. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-proofing-press-a9b284de","cdnUrl":"https://cdn.3dassets.dev/assets/37729/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-proofing-press-a9b284de","thumbnailUrl":"https://cdn.3dassets.dev/assets/37729/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37729/v1/poster.webp","blurhash":"U58z.Jxu00S5_4M_D%xv00D%%M%L00%M-=Mx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":138056,"triangles":3548,"vertices":5871,"meshes":9,"materials":7,"textures":1,"animations":["spin"],"boundingBox":{"min":[-0.7699999809265137,-0.000003071719283820329,-1.2000000476837158],"max":[0.949999988079071,1.3799700835154811,1.409999966621399]},"sizeMeters":[1.72,1.38,2.61],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:23.649Z","updatedAt":"2026-09-12T05:47:23.763Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37729/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ProofingPressPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37729/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37729/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37729/v1/model.glb\" alt=\"Proofing Press (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37729/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37729/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37730","slug":"printing-press-and-newspaper-office-ink-fountain-842249be","title":"Ink Fountain (Printing Press and Newspaper Office)","summary":"Free 3D model of a press ink fountain on a stand: a 1.2 m trough of ink with adjusting keys and a turning fountain roller, as a game asset.","description":"Free 3D model of a press ink fountain on a stand: a 1.2 m trough of ink with adjusting keys and a turning fountain roller, as a game asset. Dimensions 1.36 by 1.36 by 0.66 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: roller-fountain at (0.00, 1.20, 0.26) m. A free standing ink fountain 1.2 m wide, the trough holding a body of black ink with a blade set against the fountain roller by seven brass keys. The roller turns on the spin clip. The trough, the blade, the keys and the stand are fixed, and the ink is solid geometry: a fluid surface needs a shader rather than a node transform. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-ink-fountain-842249be","cdnUrl":"https://cdn.3dassets.dev/assets/37730/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-ink-fountain-842249be","thumbnailUrl":"https://cdn.3dassets.dev/assets/37730/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37730/v1/poster.webp","blurhash":"U36kYKt400jK~Wxu9aM|ac%MRlM{In-:xu9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55308,"triangles":2232,"vertices":2276,"meshes":6,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.6600000262260437,0,-0.2500177176907592],"max":[0.7049999833106995,1.3650056576803038,0.40625689944773247]},"sizeMeters":[1.365,1.365,0.656],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:24.514Z","updatedAt":"2026-09-12T05:47:24.614Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37730/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function InkFountainPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37730/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37730/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37730/v1/model.glb\" alt=\"Ink Fountain (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37730/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37730/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37731","slug":"printing-press-and-newspaper-office-plate-casting-box-5943fd47","title":"Plate Casting Box (Printing Press and Newspaper Office)","summary":"Free 3D model of a stereotype plate casting box: a 1.2 m iron box with a curved mould, a hinged cover and a melting pot, for a newspaper press hall game asset kit.","description":"Free 3D model of a stereotype plate casting box: a 1.2 m iron box with a curved mould, a hinged cover and a melting pot, for a newspaper press hall game asset kit. Dimensions 1.75 by 1.60 by 1.33 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: lid at (0.00, 1.46, 0.02) m. The casting box a curved stereotype plate is poured in, 1.2 m wide and 0.9 m deep on a bolted iron stand, with the melting pot and a ladle beside it. The cover lifts on the open and close clips. The mould face, the pot, the ladle and the clamping wheel are fixed, and the molten metal is not modelled, because a fluid needs a shader rather than a rigid node transform. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-plate-casting-box-5943fd47","cdnUrl":"https://cdn.3dassets.dev/assets/37731/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-plate-casting-box-5943fd47","thumbnailUrl":"https://cdn.3dassets.dev/assets/37731/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37731/v1/poster.webp","blurhash":"U26H$H%N00R5~qoz9FVs4mWVxvM{ITt7kDIA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62372,"triangles":1596,"vertices":1901,"meshes":6,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.7049999833106995,0.000007287018444768201,-0.4899935151607541],"max":[1.0399999618530273,1.6049925136268202,0.8361903429031372]},"sizeMeters":[1.745,1.605,1.326],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:25.681Z","updatedAt":"2026-09-12T05:47:25.794Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37731/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PlateCastingBoxPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37731/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37731/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37731/v1/model.glb\" alt=\"Plate Casting Box (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37731/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37731/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37732","slug":"printing-press-and-newspaper-office-linecasting-machin-8244f304","title":"Linecasting Machine (Printing Press and Newspaper Office)","summary":"Free 3D model of a linecasting machine for a composing room: a 3 m tall caster with a sloping matrix magazine, a blank keyboard, a metal pot and a turning mould wheel, as a game asset.","description":"Free 3D model of a linecasting machine for a composing room: a 3 m tall caster with a sloping matrix magazine, a blank keyboard, a metal pot and a turning mould wheel, as a game asset. Dimensions 1.68 by 2.94 by 1.62 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: roller-distributor at (0.00, 2.84, -0.62) m; mould-wheel at (0.58, 1.24, -0.30) m. A hot metal line composing machine 1.3 m wide and 1.6 m deep standing 3.0 m to the distributor box, with a galley of cast slugs beside it. The mould wheel and the distributor screw turn on the spin clip. The magazine, the assembler, the pot and the ninety key keyboard are fixed, and the keys carry no legends at all: every key top is blank. The cast lines on the galley are blank lead bodies in abstract rows, not text. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-linecasting-machin-8244f304","cdnUrl":"https://cdn.3dassets.dev/assets/37732/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-linecasting-machin-8244f304","thumbnailUrl":"https://cdn.3dassets.dev/assets/37732/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37732/v1/poster.webp","blurhash":"U26u39jZ00oz-;M|E0-p00M{_M%M9EaJ-;T0","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":328064,"triangles":13788,"vertices":12795,"meshes":12,"materials":9,"textures":1,"animations":["spin"],"boundingBox":{"min":[-0.949999988079071,0,-0.7700576773322337],"max":[0.7300000190734863,2.940000057220459,0.8510052689834353]},"sizeMeters":[1.68,2.94,1.621],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:26.597Z","updatedAt":"2026-09-12T05:47:26.701Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37732/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LinecastingMachinePrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37732/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37732/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37732/v1/model.glb\" alt=\"Linecasting Machine (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37732/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37732/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37733","slug":"printing-press-and-newspaper-office-type-case-cabinet-9ce2c089","title":"Type Case Cabinet (Printing Press and Newspaper Office)","summary":"Free 3D model of a compositors type case cabinet: a 1.2 m oak cabinet of twelve partitioned type cases that pull out, with a sloping working top, as a game asset.","description":"Free 3D model of a compositors type case cabinet: a 1.2 m oak cabinet of twelve partitioned type cases that pull out, with a sloping working top, as a game asset. Dimensions 1.20 by 1.43 by 0.88 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: drawer-1 at (0.00, 0.17, 0.43) m; drawer-2 at (0.00, 0.25, 0.43) m; drawer-3 at (0.00, 0.33, 0.43) m; drawer-4 at (0.00, 0.40, 0.43) m; drawer-5 at (0.00, 0.48, 0.43) m; drawer-6 at (0.00, 0.56, 0.43) m; drawer-7 at (0.00, 0.64, 0.43) m; drawer-8 at (0.00, 0.72, 0.43) m; drawer-9 at (0.00, 0.79, 0.43) m; drawer-10 at (0.00, 0.87, 0.43) m; drawer-11 at (0.00, 0.95, 0.43) m; drawer-12 at (0.00, 1.03, 0.43) m. A type case cabinet 1.20 by 0.86 m and 1.45 m to the top of the sloped case, holding twelve trays on runners. Each tray is its own node and pulls out 0.16 m on the open and close clips, far enough to read as drawn out and not far enough to leave the carcass. The carcass and the sloping top are fixed. The loose type on the top is blank lead bodies, not letters. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-type-case-cabinet-9ce2c089","cdnUrl":"https://cdn.3dassets.dev/assets/37733/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-type-case-cabinet-9ce2c089","thumbnailUrl":"https://cdn.3dassets.dev/assets/37733/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37733/v1/poster.webp","blurhash":"U38MT}}r0N9[=|xGI.NZ5-NJrtxDEMs-xZNc","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":99152,"triangles":15312,"vertices":13805,"meshes":38,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.5999719898522656,-2.980232727267662e-10,-0.43002331193771975],"max":[0.5999719898522656,1.433571457862854,0.4450024077585349]},"sizeMeters":[1.2,1.434,0.875],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:25.580Z","updatedAt":"2026-09-12T05:47:25.699Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37733/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function TypeCaseCabinetPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37733/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37733/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37733/v1/model.glb\" alt=\"Type Case Cabinet (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37733/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37733/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37734","slug":"printing-press-and-newspaper-office-composing-stone-3f0cf356","title":"Composing Stone (Printing Press and Newspaper Office)","summary":"Free 3D model of a composing stone: a 1.9 m steel topped make-up table with a page of set type, a composing stick, a planer and a mallet on it, as a game asset.","description":"Free 3D model of a composing stone: a 1.9 m steel topped make-up table with a page of set type, a composing stick, a planer and a mallet on it, as a game asset. Dimensions 1.94 by 1.01 by 1.04 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. The flat table a compositor makes pages up on, 1.94 by 1.04 m with a steel surface at 0.92 m on an oak frame with a lower galley shelf. Static geometry with no rig. The page on the stone and the type in the stick are blank lead bodies in abstract rows: no letter or word is modelled. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-composing-stone-3f0cf356","cdnUrl":"https://cdn.3dassets.dev/assets/37734/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-composing-stone-3f0cf356","thumbnailUrl":"https://cdn.3dassets.dev/assets/37734/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37734/v1/poster.webp","blurhash":"UIBMuqt79FWD_NxuMxRj56xuxuRP8^kCtRRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":113348,"triangles":2880,"vertices":4492,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.9700000286102295,0.0000327877352663819,-0.5200055086693103],"max":[0.9700000286102295,1.0099672027279905,0.5200055086693103]},"sizeMeters":[1.94,1.01,1.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:26.204Z","updatedAt":"2026-09-12T05:47:26.319Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37734/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ComposingStonePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37734/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37734/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37734/v1/model.glb\" alt=\"Composing Stone (Printing Press and Newspaper Office)\" 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/37734/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/37734/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37735","slug":"printing-press-and-newspaper-office-imposing-stone-65c01c95","title":"Imposing Stone (Printing Press and Newspaper Office)","summary":"Free 3D model of an imposing stone: a 2.6 m iron framed steel surface with two chases of set type being locked up on it, for a newspaper composing room game asset kit.","description":"Free 3D model of an imposing stone: a 2.6 m iron framed steel surface with two chases of set type being locked up on it, for a newspaper composing room game asset kit. Dimensions 2.66 by 1.01 by 1.36 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. The heavy surface pages are imposed and locked up on, 2.66 by 1.36 m with a steel top at 0.94 m and a lower storage shelf. Static geometry with no rig. Both chases hold abstract blank lead matter surrounded by wood furniture: no letter, word or headline is modelled anywhere on the stone. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-imposing-stone-65c01c95","cdnUrl":"https://cdn.3dassets.dev/assets/37735/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-imposing-stone-65c01c95","thumbnailUrl":"https://cdn.3dassets.dev/assets/37735/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37735/v1/poster.webp","blurhash":"U99jyBxv4may~q%MM{M{00xu%NM{00RPxuj?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":231588,"triangles":5940,"vertices":11002,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.3300000429153442,-0.00007157711091104746,-0.6800384752648603],"max":[1.3300000429153442,1.0099970993323857,0.6800384752648603]},"sizeMeters":[2.66,1.01,1.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:28.403Z","updatedAt":"2026-09-12T05:47:28.508Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37735/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ImposingStonePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37735/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37735/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37735/v1/model.glb\" alt=\"Imposing Stone (Printing Press and Newspaper Office)\" 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/37735/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/37735/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37736","slug":"printing-press-and-newspaper-office-galley-rack-bfab69eb","title":"Galley Rack (Printing Press and Newspaper Office)","summary":"Free 3D model of a galley rack for a composing room: a 1.7 m iron rack of nine sloping shelves holding galleys of set type, as a game asset.","description":"Free 3D model of a galley rack for a composing room: a 1.7 m iron rack of nine sloping shelves holding galleys of set type, as a game asset. Dimensions 1.10 by 1.70 by 0.57 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A standing galley rack 1.10 by 0.56 m and 1.70 m tall, the shelves sloped back with a front lip so galleys cannot slide out. Static geometry with no rig. The type in the galleys is blank lead bodies in abstract rows, not text. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-galley-rack-bfab69eb","cdnUrl":"https://cdn.3dassets.dev/assets/37736/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-galley-rack-bfab69eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/37736/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37736/v1/poster.webp","blurhash":"U47_7w_40000%gt7M{Rj4nIU%g%Mt7ogWBRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":154260,"triangles":5148,"vertices":7532,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.5499954376505347,0,-0.2699589600015917],"max":[0.5499954376505347,1.7000000476837158,0.2999589611936846]},"sizeMeters":[1.1,1.7,0.57],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:27.610Z","updatedAt":"2026-09-12T05:47:27.711Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37736/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GalleyRackPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37736/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37736/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37736/v1/model.glb\" alt=\"Galley Rack (Printing Press and Newspaper Office)\" 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/37736/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/37736/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37737","slug":"printing-press-and-newspaper-office-galley-of-set-type-55364491","title":"Galley Of Set Type (Printing Press and Newspaper Office)","summary":"Free 3D model of a galley of set type: a 0.72 m steel tray of composed lead matter with a wooden reglet at the foot, as a small game asset prop.","description":"Free 3D model of a galley of set type: a 0.72 m steel tray of composed lead matter with a wooden reglet at the foot, as a small game asset prop. Dimensions 0.36 by 0.06 by 0.73 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A galley tray 0.34 by 0.72 m, 0.06 m deep, holding a column of composed matter tied off at the foot with a reglet and a brass quotation. The matter is modelled as abstract blank lead bodies of varying width with word gaps between them: it reads as set type at any distance and spells nothing, in any language, because no glyph is modelled. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-galley-of-set-type-55364491","cdnUrl":"https://cdn.3dassets.dev/assets/37737/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-galley-of-set-type-55364491","thumbnailUrl":"https://cdn.3dassets.dev/assets/37737/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37737/v1/poster.webp","blurhash":"U5AAdl%100o}?v9FIA-;00IU_3xa00~q-;D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":66296,"triangles":1464,"vertices":2467,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.17897398349747076,-0.000011382651237470953,-0.36899998784065247],"max":[0.17897398349747076,0.05801138432761811,0.36000001430511475]},"sizeMeters":[0.358,0.058,0.729],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:28.003Z","updatedAt":"2026-09-12T05:47:28.204Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37737/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GalleyOfSetTypePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37737/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37737/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37737/v1/model.glb\" alt=\"Galley Of Set Type (Printing Press and Newspaper Office)\" 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/37737/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/37737/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37738","slug":"printing-press-and-newspaper-office-chase-and-quoins-dfc8638e","title":"Chase And Quoins (Printing Press and Newspaper Office)","summary":"Free 3D model of a locked up chase: a 0.86 by 1.14 m iron newspaper page chase with two columns of set type, wood furniture and steel quoins, as a game asset.","description":"Free 3D model of a locked up chase: a 0.86 by 1.14 m iron newspaper page chase with two columns of set type, wood furniture and steel quoins, as a game asset. Dimensions 0.86 by 0.09 by 1.15 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A page chase 0.86 by 1.14 m with a centre bar, holding two columns of composed matter packed out with wood furniture and locked with four pairs of steel quoins, the key left lying in the corner. It lies flat with the origin on its underside. Static geometry with no rig. The matter is abstract blank lead bodies: nothing in the chase spells a word, a headline or a masthead. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-chase-and-quoins-dfc8638e","cdnUrl":"https://cdn.3dassets.dev/assets/37738/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-chase-and-quoins-dfc8638e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37738/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37738/v1/poster.webp","blurhash":"U57UI}xu00Rjt8WBRjoM00M{~qt7Int7xaWV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":155408,"triangles":4368,"vertices":6692,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.43000060497439296,0.000010070888404638961,-0.5699999928474426],"max":[0.43000060497439296,0.0884385555460254,0.5756599307060242]},"sizeMeters":[0.86,0.088,1.146],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:29.356Z","updatedAt":"2026-09-12T05:47:29.456Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37738/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ChaseAndQuoinsPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37738/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37738/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37738/v1/model.glb\" alt=\"Chase And Quoins (Printing Press and Newspaper Office)\" 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/37738/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/37738/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37739","slug":"printing-press-and-newspaper-office-furniture-rack-d252c708","title":"Furniture Rack (Printing Press and Newspaper Office)","summary":"Free 3D model of a wood furniture rack for a composing room: a 1.4 m oak rack of thirty pigeonholes stacked with furniture and reglet, as a game asset.","description":"Free 3D model of a wood furniture rack for a composing room: a 1.4 m oak rack of thirty pigeonholes stacked with furniture and reglet, as a game asset. Dimensions 1.00 by 1.43 by 0.44 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A furniture rack 1.00 by 0.44 m and 1.43 m tall, five shelves divided into six pigeonholes each and filled with wood spacing material in assorted lengths. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-furniture-rack-d252c708","cdnUrl":"https://cdn.3dassets.dev/assets/37739/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-furniture-rack-d252c708","thumbnailUrl":"https://cdn.3dassets.dev/assets/37739/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37739/v1/poster.webp","blurhash":"U28MT^}q030~-.soNGXP1MIr]*=w%1s.NGNt","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":483264,"triangles":19980,"vertices":17285,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.5000002865325809,8.940697071579962e-10,-0.21997481402352048],"max":[0.5000002865325809,1.4299999475479126,0.21997481402352048]},"sizeMeters":[1,1.43,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:30.399Z","updatedAt":"2026-09-12T05:47:30.523Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37739/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FurnitureRackPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37739/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37739/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37739/v1/model.glb\" alt=\"Furniture Rack (Printing Press and Newspaper Office)\" 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/37739/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/37739/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37740","slug":"printing-press-and-newspaper-office-make-up-table-adb563e1","title":"Make Up Table (Printing Press and Newspaper Office)","summary":"Free 3D model of a composing room make-up table: a 1.6 m oak bench with a galley rack over it, proofs, a rule and a paste pot, as a game asset.","description":"Free 3D model of a composing room make-up table: a 1.6 m oak bench with a galley rack over it, proofs, a rule and a paste pot, as a game asset. Dimensions 1.60 by 1.44 by 0.91 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A working bench 1.60 by 0.80 m at 0.90 m with a lower shelf and a sloping galley rack raised above the back edge. Static geometry with no rig. The proofs on the bench carry two abstract rule bars each and the galleys hold blank lead bodies: no readable text is modelled anywhere on it. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-make-up-table-adb563e1","cdnUrl":"https://cdn.3dassets.dev/assets/37740/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-make-up-table-adb563e1","thumbnailUrl":"https://cdn.3dassets.dev/assets/37740/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37740/v1/poster.webp","blurhash":"U59i;,t500V_~Ww^D%Ej00NG~Vt80JV@%gxu","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":94252,"triangles":2812,"vertices":3220,"meshes":7,"materials":7,"textures":1,"animations":[],"boundingBox":{"min":[-0.800000011920929,-0.000017072484167712787,-0.4277345418127855],"max":[0.800000011920929,1.4400171297046267,0.4857723477354826]},"sizeMeters":[1.6,1.44,0.914],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:29.766Z","updatedAt":"2026-09-12T05:47:29.862Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37740/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MakeUpTablePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37740/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37740/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37740/v1/model.glb\" alt=\"Make Up Table (Printing Press and Newspaper Office)\" 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/37740/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/37740/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37741","slug":"printing-press-and-newspaper-office-compositors-stool-0c968be0","title":"Compositors Stool (Printing Press and Newspaper Office)","summary":"Free 3D model of a tall compositors stool: a 0.98 m turned oak stool with a round seat, a foot ring and a low back rail, as a game asset.","description":"Free 3D model of a tall compositors stool: a 0.98 m turned oak stool with a round seat, a foot ring and a low back rail, as a game asset. Dimensions 0.38 by 0.96 by 0.37 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. The high stool a compositor works a case from, 0.40 m across the seat at 0.75 m with a foot ring at 0.30 m and a back rail at 0.96 m. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-compositors-stool-0c968be0","cdnUrl":"https://cdn.3dassets.dev/assets/37741/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-compositors-stool-0c968be0","thumbnailUrl":"https://cdn.3dassets.dev/assets/37741/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37741/v1/poster.webp","blurhash":"U15q04w^02Sh^*R*0fozX-NaR5$*%MwdR5S}","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":36636,"triangles":488,"vertices":849,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.1900149025487977,0,-0.1857366735763057],"max":[0.1900149025487977,0.9601693749427795,0.1857366735763057]},"sizeMeters":[0.38,0.96,0.371],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:30.235Z","updatedAt":"2026-09-12T05:47:30.335Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37741/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CompositorsStoolPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37741/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37741/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37741/v1/model.glb\" alt=\"Compositors Stool (Printing Press and Newspaper Office)\" 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/37741/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/37741/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37742","slug":"printing-press-and-newspaper-office-ink-cans-and-slab-4e0307aa","title":"Ink Cans And Slab (Printing Press and Newspaper Office)","summary":"Free 3D model of an ink slab and cans: a 1.1 m steel topped stand with a worked body of black ink, six cans and a palette knife, for a printing works game asset kit.","description":"Free 3D model of an ink slab and cans: a 1.1 m steel topped stand with a worked body of black ink, six cans and a palette knife, for a printing works game asset kit. Dimensions 1.10 by 1.14 by 0.63 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. The stand a pressman works ink out on, 1.10 by 0.62 m at 0.86 m with three cans on the slab, three more on the shelf below and a knife left on the surface. Static geometry with no rig; the ink is solid geometry, because a fluid needs a shader rather than a node transform. The cans are plain and unlabelled: no maker or brand is named or depicted. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-ink-cans-and-slab-4e0307aa","cdnUrl":"https://cdn.3dassets.dev/assets/37742/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-ink-cans-and-slab-4e0307aa","thumbnailUrl":"https://cdn.3dassets.dev/assets/37742/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37742/v1/poster.webp","blurhash":"UD9%#Qs:00bH_4ofITV@9FWqxuV@I9bHX8NG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":64480,"triangles":1668,"vertices":2096,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.550000011920929,-0.00003892916197029139,-0.31500648957247346],"max":[0.550000011920929,1.140015557450171,0.31000649434084504]},"sizeMeters":[1.1,1.14,0.625],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:31.006Z","updatedAt":"2026-09-12T05:47:31.128Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37742/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function InkCansAndSlabPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37742/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37742/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37742/v1/model.glb\" alt=\"Ink Cans And Slab (Printing Press and Newspaper Office)\" 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/37742/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/37742/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37743","slug":"printing-press-and-newspaper-office-roller-rack-e5159fab","title":"Roller Rack (Printing Press and Newspaper Office)","summary":"Free 3D model of an ink roller rack: a 1.6 m iron stand cradling ten composition press rollers on their steel cores, as a game asset.","description":"Free 3D model of an ink roller rack: a 1.6 m iron stand cradling ten composition press rollers on their steel cores, as a game asset. Dimensions 1.45 by 1.60 by 0.80 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A free standing rack 1.30 by 0.40 m and 1.60 m tall, three pairs of bearer rails cradling ten rollers by their core ends so the composition never touches a shelf. Static geometry with no rig: the rollers rest in the rack rather than running in it. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-roller-rack-e5159fab","cdnUrl":"https://cdn.3dassets.dev/assets/37743/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-roller-rack-e5159fab","thumbnailUrl":"https://cdn.3dassets.dev/assets/37743/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37743/v1/poster.webp","blurhash":"U15OW-?c00Im_3x[DjD*9FIUM{WCogxvM{D$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":55420,"triangles":1820,"vertices":2604,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.724997721915097,0,-0.4000245702397846],"max":[0.724997721915097,1.600000023841858,0.4000245702397846]},"sizeMeters":[1.45,1.6,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:31.489Z","updatedAt":"2026-09-12T05:47:31.590Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37743/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RollerRackPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37743/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37743/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37743/v1/model.glb\" alt=\"Roller Rack (Printing Press and Newspaper Office)\" 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/37743/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/37743/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37744","slug":"printing-press-and-newspaper-office-stereotype-curved--82233f84","title":"Stereotype Curved Plate (Printing Press and Newspaper Office)","summary":"Free 3D model of a curved stereotype printing plate on a stand: a 0.6 m half cylinder of type metal with an abstract cast face, as a game asset.","description":"Free 3D model of a curved stereotype printing plate on a stand: a 0.6 m half cylinder of type metal with an abstract cast face, as a game asset. Dimensions 0.70 by 0.53 by 0.62 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A curved stereotype plate 0.60 m across the arc and 0.62 m wide, resting in a timber saddle the way plates wait beside a rotary press. The cast face carries abstract raised bars and blocks only: no letter, word or masthead is modelled on it. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-stereotype-curved--82233f84","cdnUrl":"https://cdn.3dassets.dev/assets/37744/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-stereotype-curved--82233f84","thumbnailUrl":"https://cdn.3dassets.dev/assets/37744/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37744/v1/poster.webp","blurhash":"UFBMurRi4.%g_4RjMxxu4nRkofWB4ToLt7WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":63336,"triangles":2268,"vertices":1938,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3499999940395355,-0.00001853857214767496,-0.30999975818422715],"max":[0.3499999940395355,0.5310080189237509,0.30999975818422715]},"sizeMeters":[0.7,0.531,0.62],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:31.882Z","updatedAt":"2026-09-12T05:47:31.985Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37744/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StereotypeCurvedPlatePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37744/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37744/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37744/v1/model.glb\" alt=\"Stereotype Curved Plate (Printing Press and Newspaper Office)\" 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/37744/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/37744/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37745","slug":"printing-press-and-newspaper-office-plate-rack-89238883","title":"Plate Rack (Printing Press and Newspaper Office)","summary":"Free 3D model of a stereotype plate rack: a 1.6 m iron rack holding curved printing plates on edge between dividers, for a newspaper press hall game asset kit.","description":"Free 3D model of a stereotype plate rack: a 1.6 m iron rack holding curved printing plates on edge between dividers, for a newspaper press hall game asset kit. Dimensions 1.60 by 1.33 by 0.80 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A plate rack 1.60 by 0.80 m and 1.30 m tall, seven dividers holding curved stereotype plates on edge ready for the press. Static geometry with no rig. Every plate face is abstract raised bars: no text is modelled. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-plate-rack-89238883","cdnUrl":"https://cdn.3dassets.dev/assets/37745/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-plate-rack-89238883","thumbnailUrl":"https://cdn.3dassets.dev/assets/37745/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37745/v1/poster.webp","blurhash":"U16u05_300M{?vtRM|axDhM_D%Mx-;?bIU9F","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":127356,"triangles":6372,"vertices":5444,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.800000011920929,-0.00003493169843593602,-0.400061042980326],"max":[0.800000011920929,1.33003497550785,0.400061042980326]},"sizeMeters":[1.6,1.33,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:32.161Z","updatedAt":"2026-09-12T05:47:32.343Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37745/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlateRackPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37745/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37745/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37745/v1/model.glb\" alt=\"Plate Rack (Printing Press and Newspaper Office)\" 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/37745/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/37745/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37746","slug":"printing-press-and-newspaper-office-guillotine-7d7ca2ab","title":"Guillotine (Printing Press and Newspaper Office)","summary":"Free 3D model of a paper guillotine: a 2.5 m tall cast iron cutter with a clamp, a back gauge, a handwheel and a blade beam that drops, as a game asset.","description":"Free 3D model of a paper guillotine: a 2.5 m tall cast iron cutter with a clamp, a back gauge, a handwheel and a blade beam that drops, as a game asset. Dimensions 1.81 by 2.62 by 1.16 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: blade at (0.00, 1.74, -0.06) m. A hand guillotine 1.76 m wide and 1.16 m deep cutting a 0.86 m pile of blank stock, with a screw back gauge behind the cut and a lever at the side. The blade beam drops 0.42 m on the open clip and rises on close. The clamp, the gauge, the handwheel and the table are fixed, and the screw linkage between the wheel and the beam is left static, because a linkage cannot be carried by one rigid node transform per part. Every sheet on the table is blank. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-guillotine-7d7ca2ab","cdnUrl":"https://cdn.3dassets.dev/assets/37746/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-guillotine-7d7ca2ab","thumbnailUrl":"https://cdn.3dassets.dev/assets/37746/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37746/v1/poster.webp","blurhash":"U684lG%N009FM|WCs:oe00M{~q-:_3xuD%M_","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":106712,"triangles":4088,"vertices":3785,"meshes":6,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.8799754594526493,0,-0.5800589281715123],"max":[0.9300003148212669,2.620000123977661,0.5800589281715123]},"sizeMeters":[1.81,2.62,1.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:32.855Z","updatedAt":"2026-09-12T05:47:32.949Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37746/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function GuillotinePrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37746/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37746/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37746/v1/model.glb\" alt=\"Guillotine (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37746/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37746/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37747","slug":"printing-press-and-newspaper-office-folding-table-e4120a87","title":"Folding Table (Printing Press and Newspaper Office)","summary":"Free 3D model of a newspaper folding table: a 2.4 m timber bench with three stacks of folded blank papers, a bone folder and a rule, as a game asset.","description":"Free 3D model of a newspaper folding table: a 2.4 m timber bench with three stacks of folded blank papers, a bone folder and a rule, as a game asset. Dimensions 2.40 by 1.11 by 0.90 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A dispatch bench 2.40 by 0.90 m at 0.88 m with a lower shelf, three worked stacks of folded papers and a flat sheet being turned. Static geometry with no rig. Every paper on it is blank: the only marks modelled are two abstract rule bars on the open sheet, and no masthead, headline or word appears anywhere. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-folding-table-e4120a87","cdnUrl":"https://cdn.3dassets.dev/assets/37747/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-folding-table-e4120a87","thumbnailUrl":"https://cdn.3dassets.dev/assets/37747/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37747/v1/poster.webp","blurhash":"UGCY?ssm56oz~q%LM{NG0L-;-VIA00XSx]Vs","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":143852,"triangles":6048,"vertices":5253,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.2000000476837158,0.00002112166178025454,-0.45005037342402976],"max":[1.2000000476837158,1.1150124569063924,0.45005037342402976]},"sizeMeters":[2.4,1.115,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:33.381Z","updatedAt":"2026-09-12T05:47:33.486Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37747/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingTablePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37747/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37747/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37747/v1/model.glb\" alt=\"Folding Table (Printing Press and Newspaper Office)\" 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/37747/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/37747/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37748","slug":"printing-press-and-newspaper-office-bundling-press-43e331e5","title":"Bundling Press (Printing Press and Newspaper Office)","summary":"Free 3D model of a newspaper bundling press: a 1.7 m iron screw press squeezing a tied bundle of blank papers, for a dispatch room game asset kit.","description":"Free 3D model of a newspaper bundling press: a 1.7 m iron screw press squeezing a tied bundle of blank papers, for a dispatch room game asset kit. Dimensions 0.96 by 1.61 by 0.90 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: ram at (0.00, 0.62, 0.00) m. A screw bundling press 0.96 m wide and 0.90 m deep with a cross handle at 1.34 m, pressing a tied bundle on the base plate. The platen travels 0.22 m down onto the bundle on the open clip and lifts on close. The frame, the screw and the cord are fixed, and the cord is solid geometry because flexible material cannot be carried by a rigid node transform. Every paper in the bundle is blank. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-bundling-press-43e331e5","cdnUrl":"https://cdn.3dassets.dev/assets/37748/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-bundling-press-43e331e5","thumbnailUrl":"https://cdn.3dassets.dev/assets/37748/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37748/v1/poster.webp","blurhash":"U88E9=%M00D%9FRj%Mt79FWB%Ms;~qtR9GIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":94284,"triangles":3460,"vertices":3180,"meshes":7,"materials":5,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4799978680580479,-2.980232727267662e-10,-0.45002563962981473],"max":[0.4799978680580479,1.6100000143051147,0.45002563962981473]},"sizeMeters":[0.96,1.61,0.9],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:33.548Z","updatedAt":"2026-09-12T05:47:33.666Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37748/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BundlingPressPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37748/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37748/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37748/v1/model.glb\" alt=\"Bundling Press (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37748/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37748/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37749","slug":"printing-press-and-newspaper-office-wire-stitcher-fe51844e","title":"Wire Stitcher (Printing Press and Newspaper Office)","summary":"Free 3D model of a wire stitching machine: a 1.75 m pedestal stitcher with a wire spool, a treadle and a turning flywheel, for a printing works game asset kit.","description":"Free 3D model of a wire stitching machine: a 1.75 m pedestal stitcher with a wire spool, a treadle and a turning flywheel, for a printing works game asset kit. Dimensions 0.70 by 1.75 by 0.92 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: flywheel at (-0.30, 0.92, -0.10) m. A pedestal wire stitcher 0.70 m wide and 0.62 m deep standing 1.75 m to the head, with a spool of wire at the back, a sheaf of blank stock under the head and a treadle at the foot. The flywheel turns on the spin clip. The head, the spool and the treadle are fixed, and the wire itself is not modelled as a moving element because flexible material needs a joint per span. Every sheet under the head is blank. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-wire-stitcher-fe51844e","cdnUrl":"https://cdn.3dassets.dev/assets/37749/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-wire-stitcher-fe51844e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37749/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37749/v1/poster.webp","blurhash":"U26H_s_30000?]t68_M{IVIUod?H00IU_N?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":53508,"triangles":2124,"vertices":2207,"meshes":6,"materials":4,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.3499519333475753,0,-0.44000000357627866],"max":[0.3499519333475753,1.75,0.48044907233700285]},"sizeMeters":[0.7,1.75,0.92],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:33.937Z","updatedAt":"2026-09-12T05:47:34.044Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37749/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WireStitcherPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37749/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37749/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37749/v1/model.glb\" alt=\"Wire Stitcher (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37749/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37749/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37750","slug":"printing-press-and-newspaper-office-paper-skid-and-sta-b4402cf8","title":"Paper Skid And Stack (Printing Press and Newspaper Office)","summary":"Free 3D model of a skid of newsprint: a 1.3 m timber skid carrying a 0.85 m stack of flat blank sheets, for a printing works game asset kit.","description":"Free 3D model of a skid of newsprint: a 1.3 m timber skid carrying a 0.85 m stack of flat blank sheets, for a printing works game asset kit. Dimensions 1.30 by 0.96 by 1.16 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A three bearer timber skid 1.30 by 1.16 m with thirty four lifts of flat stock on it, the sheets slightly out of register the way a real stack sits. A blank docket lies on top. Static geometry with no rig; every sheet is plain, with no printing on it at all. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-paper-skid-and-sta-b4402cf8","cdnUrl":"https://cdn.3dassets.dev/assets/37750/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-paper-skid-and-sta-b4402cf8","thumbnailUrl":"https://cdn.3dassets.dev/assets/37750/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37750/v1/poster.webp","blurhash":"ULH_xw-p00Rj_Nt7Mxf600M{kCWBMxaxMyRP","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":105800,"triangles":4320,"vertices":3691,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.6499999761581421,0.000009616768861825387,-0.5800149327948215],"max":[0.6499999761581421,0.9600273850142991,0.5800149327948215]},"sizeMeters":[1.3,0.96,1.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:34.473Z","updatedAt":"2026-09-12T05:47:34.572Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37750/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PaperSkidAndStackPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37750/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37750/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37750/v1/model.glb\" alt=\"Paper Skid And Stack (Printing Press and Newspaper Office)\" 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/37750/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/37750/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37751","slug":"printing-press-and-newspaper-office-waste-bin-of-offcu-60a85b9a","title":"Waste Bin Of Offcuts (Printing Press and Newspaper Office)","summary":"Free 3D model of a works waste bin full of paper offcuts: a 0.7 m riveted iron bin heaped with trimmed blank strips, as a game asset.","description":"Free 3D model of a works waste bin full of paper offcuts: a 0.7 m riveted iron bin heaped with trimmed blank strips, as a game asset. Dimensions 0.73 by 0.72 by 0.75 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A riveted iron bin 0.70 m across and 0.66 m tall, heaped with the trimmings off a guillotine. Static geometry with no rig. Every offcut is blank paper: no printing of any kind is modelled. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-waste-bin-of-offcu-60a85b9a","cdnUrl":"https://cdn.3dassets.dev/assets/37751/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-waste-bin-of-offcu-60a85b9a","thumbnailUrl":"https://cdn.3dassets.dev/assets/37751/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37751/v1/poster.webp","blurhash":"U88||utR00Rj~qRj4ot89Fax-;fk00t7~pRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":131148,"triangles":6360,"vertices":5629,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.35499998927116394,0.000014734903217072937,-0.3962777853012085],"max":[0.37232833102749746,0.7222774552126394,0.35499998927116394]},"sizeMeters":[0.727,0.722,0.751],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:35.024Z","updatedAt":"2026-09-12T05:47:35.114Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37751/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WasteBinOfOffcutsPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37751/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37751/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37751/v1/model.glb\" alt=\"Waste Bin Of Offcuts (Printing Press and Newspaper Office)\" 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/37751/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/37751/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37752","slug":"printing-press-and-newspaper-office-hand-truck-d5628d00","title":"Hand Truck (Printing Press and Newspaper Office)","summary":"Free 3D model of a printers hand truck: a 1.35 m oak sack barrow with iron wheels and a load of blank paper quires, as a game asset.","description":"Free 3D model of a printers hand truck: a 1.35 m oak sack barrow with iron wheels and a load of blank paper quires, as a game asset. Dimensions 0.69 by 1.37 by 0.51 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-left at (-0.30, 0.18, -0.02) m; wheel-right at (0.30, 0.18, -0.02) m. A two wheeled hand truck 0.55 m wide and 1.35 m tall with a steel toe plate and a small load of flat stock. Both wheels turn on the roll clip. The frame, the toe plate and the load are fixed. The paper on it is blank. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-hand-truck-d5628d00","cdnUrl":"https://cdn.3dassets.dev/assets/37752/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-hand-truck-d5628d00","thumbnailUrl":"https://cdn.3dassets.dev/assets/37752/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37752/v1/poster.webp","blurhash":"UC8ga2%M019FDiM{%gx[9ZM{%M%M~q%M9FD%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":78664,"triangles":3432,"vertices":3188,"meshes":7,"materials":4,"textures":1,"animations":["roll"],"boundingBox":{"min":[-0.34499990511033596,-1.7285347042594879e-9,-0.17692129936434764],"max":[0.34499990511033596,1.3659999370574951,0.33006668138095585]},"sizeMeters":[0.69,1.366,0.507],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:36.268Z","updatedAt":"2026-09-12T05:47:36.354Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37752/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function HandTruckPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37752/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37752/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37752/v1/model.glb\" alt=\"Hand Truck (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37752/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37752/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37753","slug":"printing-press-and-newspaper-office-reel-trolley-5744d0b2","title":"Reel Trolley (Printing Press and Newspaper Office)","summary":"Free 3D model of a reel trolley: a 1.3 m four wheeled iron trolley carrying a 0.84 m reel of newsprint in shaped cradles, as a game asset.","description":"Free 3D model of a reel trolley: a 1.3 m four wheeled iron trolley carrying a 0.84 m reel of newsprint in shaped cradles, as a game asset. Dimensions 1.59 by 1.24 by 0.92 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-lf at (-0.46, 0.15, -0.32) m; wheel-rf at (0.46, 0.15, -0.32) m; wheel-lb at (-0.46, 0.15, 0.32) m; wheel-rb at (0.46, 0.15, 0.32) m. A low reel trolley 1.30 by 0.86 m with a pull handle, carrying a part used reel on its side between four cradles. All four wheels turn on the roll clip; the frame, the cradles, the handle and the reel are fixed. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-reel-trolley-5744d0b2","cdnUrl":"https://cdn.3dassets.dev/assets/37753/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-reel-trolley-5744d0b2","thumbnailUrl":"https://cdn.3dassets.dev/assets/37753/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37753/v1/poster.webp","blurhash":"UEB3.^~q0000~q-;D%9G4nIUxu%M01D%-;?H","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71664,"triangles":4336,"vertices":4512,"meshes":9,"materials":5,"textures":1,"animations":["roll"],"boundingBox":{"min":[-0.6499999761581421,-2.4437904477814243e-9,-0.4578701273777678],"max":[0.9399999976158142,1.2390213243432064,0.4578701273777678]},"sizeMeters":[1.59,1.239,0.916],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:35.702Z","updatedAt":"2026-09-12T05:47:35.792Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37753/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ReelTrolleyPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37753/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37753/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37753/v1/model.glb\" alt=\"Reel Trolley (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37753/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37753/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37754","slug":"printing-press-and-newspaper-office-editors-desk-f66a8957","title":"Editors Desk (Printing Press and Newspaper Office)","summary":"Free 3D model of an editors pedestal desk: a 1.5 m oak desk with a leather top, six drawers that open, copy paper and an inkstand, as a game asset.","description":"Free 3D model of an editors pedestal desk: a 1.5 m oak desk with a leather top, six drawers that open, copy paper and an inkstand, as a game asset. Dimensions 1.50 by 0.86 by 0.78 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: drawer-left-1 at (-0.53, 0.10, 0.36) m; drawer-left-2 at (-0.53, 0.29, 0.36) m; drawer-left-3 at (-0.53, 0.48, 0.36) m; drawer-right-1 at (0.53, 0.10, 0.36) m; drawer-right-2 at (0.53, 0.29, 0.36) m; drawer-right-3 at (0.53, 0.48, 0.36) m. A twin pedestal desk 1.50 by 0.78 m at 0.76 m with three drawers in each pedestal. Every drawer is its own node and pulls out on the open and close clips. The carcass, the leather top and the desk furniture are fixed. The copy on the desk is blank paper with two abstract rule bars on it: no words are modelled. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-editors-desk-f66a8957","cdnUrl":"https://cdn.3dassets.dev/assets/37754/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-editors-desk-f66a8957","thumbnailUrl":"https://cdn.3dassets.dev/assets/37754/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37754/v1/poster.webp","blurhash":"U88|YFr@4nxZ_NspMwNZ56kXkXIo00tQ%gRj","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":89260,"triangles":5264,"vertices":4706,"meshes":23,"materials":6,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.75,0.00002765849154906519,-0.38998077333903014],"max":[0.75,0.8619978655049292,0.38998077333903014]},"sizeMeters":[1.5,0.862,0.78],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:37.258Z","updatedAt":"2026-09-12T05:47:37.366Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37754/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function EditorsDeskPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37754/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37754/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37754/v1/model.glb\" alt=\"Editors Desk (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37754/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37754/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37755","slug":"printing-press-and-newspaper-office-typewriter-7b14f380","title":"Typewriter (Printing Press and Newspaper Office)","summary":"Free 3D model of a desktop typewriter for a newspaper office: a 0.4 m machine with blank keys, a ribbon, a type basket and a carriage that slides, as a game asset.","description":"Free 3D model of a desktop typewriter for a newspaper office: a 0.4 m machine with blank keys, a ribbon, a type basket and a carriage that slides, as a game asset. Dimensions 0.40 by 0.38 by 0.43 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: carriage at (0.00, 0.26, -0.10) m. An upright office typewriter 0.40 m wide over the carriage, 0.30 m deep and 0.32 m tall, with a blank sheet rolled into the platen. The carriage slides 0.14 m across on the open and close clips. The keys, the type basket and the ribbon spools are fixed, and every key top is blank: no letter, figure or maker name is modelled on the machine or on the sheet in it. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-typewriter-7b14f380","cdnUrl":"https://cdn.3dassets.dev/assets/37755/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-typewriter-7b14f380","thumbnailUrl":"https://cdn.3dassets.dev/assets/37755/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37755/v1/poster.webp","blurhash":"U89QpzRk00%M~qD%4o-;MxWARka}9F-;%MIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":199456,"triangles":7776,"vertices":9086,"meshes":8,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.20100000500679016,-0.00000793001125842796,-0.2777248382568359],"max":[0.20100000500679016,0.37812432011975944,0.14999450824600655]},"sizeMeters":[0.402,0.378,0.428],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:37.732Z","updatedAt":"2026-09-12T05:47:37.826Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37755/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function TypewriterPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37755/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37755/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37755/v1/model.glb\" alt=\"Typewriter (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37755/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37755/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37756","slug":"printing-press-and-newspaper-office-candlestick-teleph-f7dfb54c","title":"Candlestick Telephone (Printing Press and Newspaper Office)","summary":"Free 3D model of a candlestick telephone: a 0.4 m brass desk stand with a hanging receiver, for an early twentieth century newspaper office game asset kit.","description":"Free 3D model of a candlestick telephone: a 0.4 m brass desk stand with a hanging receiver, for an early twentieth century newspaper office game asset kit. Dimensions 0.17 by 0.39 by 0.19 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A desk stand telephone 0.17 m across the base and 0.40 m tall, the receiver hanging on the hook switch. Static geometry with no rig; the cord is solid geometry, because a flexible cable needs a joint per span and that is not reachable with one rigid node transform. No maker or exchange is named or depicted anywhere on it. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-candlestick-teleph-f7dfb54c","cdnUrl":"https://cdn.3dassets.dev/assets/37756/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-candlestick-teleph-f7dfb54c","thumbnailUrl":"https://cdn.3dassets.dev/assets/37756/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37756/v1/poster.webp","blurhash":"U15OQh?b00004TMx?v-;X=xuwCD%9IR*-.xb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22552,"triangles":592,"vertices":1004,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.08799299833076267,9.156648612708429e-7,-0.10518023303286171],"max":[0.08500000089406967,0.39100000262260437,0.08580339869316783]},"sizeMeters":[0.173,0.391,0.191],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:37.332Z","updatedAt":"2026-09-12T05:47:37.421Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37756/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CandlestickTelephonePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37756/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37756/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37756/v1/model.glb\" alt=\"Candlestick Telephone (Printing Press and Newspaper Office)\" 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/37756/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/37756/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37757","slug":"printing-press-and-newspaper-office-copy-spike-cab0b913","title":"Copy Spike (Printing Press and Newspaper Office)","summary":"Free 3D model of a copy spike heaped with used sheets: a 0.3 m iron desk spike for a newspaper office game asset kit.","description":"Free 3D model of a copy spike heaped with used sheets: a 0.3 m iron desk spike for a newspaper office game asset kit. Dimensions 0.32 by 0.30 by 0.33 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. The spike used copy is impaled on, 0.17 m across the base and 0.30 m tall, with twenty two sheets pushed down on it at random angles. Static geometry with no rig. Every sheet carries two abstract rule bars and nothing else: no words are modelled. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-copy-spike-cab0b913","cdnUrl":"https://cdn.3dassets.dev/assets/37757/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-copy-spike-cab0b913","thumbnailUrl":"https://cdn.3dassets.dev/assets/37757/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37757/v1/poster.webp","blurhash":"UED,4Wxu00V[ozofaeWB00M{~qofRjWBofkB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":151264,"triangles":7296,"vertices":6488,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1532651737248668,0.00000479166899979705,-0.160227969288826],"max":[0.1666416034018764,0.30399999022483826,0.17146159708499908]},"sizeMeters":[0.32,0.304,0.332],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:38.981Z","updatedAt":"2026-09-12T05:47:39.167Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37757/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CopySpikePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37757/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37757/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37757/v1/model.glb\" alt=\"Copy Spike (Printing Press and Newspaper Office)\" 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/37757/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/37757/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37759","slug":"printing-press-and-newspaper-office-filing-cabinet-fa04c20b","title":"Filing Cabinet (Printing Press and Newspaper Office)","summary":"Free 3D model of a four drawer oak filing cabinet: a 1.4 m office cabinet whose drawers open, for a newspaper office game asset kit.","description":"Free 3D model of a four drawer oak filing cabinet: a 1.4 m office cabinet whose drawers open, for a newspaper office game asset kit. Dimensions 0.54 by 1.41 by 0.70 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: drawer-1 at (0.00, 0.13, 0.32) m; drawer-2 at (0.00, 0.43, 0.32) m; drawer-3 at (0.00, 0.73, 0.32) m; drawer-4 at (0.00, 1.03, 0.32) m. A filing cabinet 0.52 by 0.68 m and 1.40 m tall with four deep drawers, each its own node, opening on the open and close clips. The carcass and the top are fixed. The drawer fronts carry brass pulls and blank card holders; no label is written on them. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-filing-cabinet-fa04c20b","cdnUrl":"https://cdn.3dassets.dev/assets/37759/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-filing-cabinet-fa04c20b","thumbnailUrl":"https://cdn.3dassets.dev/assets/37759/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37759/v1/poster.webp","blurhash":"U27A0m=G01Au_2NG4.-VpcEfD*=y%LR*M{$%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":57392,"triangles":3024,"vertices":2636,"meshes":15,"materials":5,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.26998168810719775,-7.450581263057643e-10,-0.35002227749144693],"max":[0.26998168810719775,1.4072533002171896,0.35002227749144693]},"sizeMeters":[0.54,1.407,0.7],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:39.266Z","updatedAt":"2026-09-12T05:47:39.430Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37759/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function FilingCabinetPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37759/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37759/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37759/v1/model.glb\" alt=\"Filing Cabinet (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37759/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37759/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37758","slug":"printing-press-and-newspaper-office-wall-clock-909613c1","title":"Wall Clock (Printing Press and Newspaper Office)","summary":"Free 3D model of a works wall clock: a 0.43 m oak cased dial with a plain face, tick marks and two hands that turn, as a game asset.","description":"Free 3D model of a works wall clock: a 0.43 m oak cased dial with a plain face, tick marks and two hands that turn, as a game asset. Dimensions 0.43 by 0.43 by 0.12 m (X by Y by Z). Metre units, +Y up, +Z front; the origin is not on the ground, see below. Animated pivot nodes: clock-hand-hour at (0.00, 0.00, 0.06) m; clock-hand-minute at (0.00, 0.00, 0.07) m. A round wall clock 0.43 m across and 0.10 m deep, hung on a wall. The origin is at the centre of the dial on the wall face, because the clock never touches the ground: place it at the height you want the dial. Both hands turn on the spin clip, the minute hand faster than the hour hand. The case, the bezel and the dial are fixed. The dial carries twelve tick marks and no numerals, lettering or maker name at all. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-wall-clock-909613c1","cdnUrl":"https://cdn.3dassets.dev/assets/37758/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-wall-clock-909613c1","thumbnailUrl":"https://cdn.3dassets.dev/assets/37758/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37758/v1/poster.webp","blurhash":"UEBf,~-:009Fsmt6ofRj00M{~q%MkDRjM|tR","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":70616,"triangles":2000,"vertices":2421,"meshes":6,"materials":4,"textures":1,"animations":["spin"],"boundingBox":{"min":[-0.2150000035762787,-0.2150000035762787,-0.040986726235137994],"max":[0.2150000035762787,0.2150000035762787,0.08199608096337939]},"sizeMeters":[0.43,0.43,0.123],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:39.179Z","updatedAt":"2026-09-12T05:47:39.293Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37758/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function WallClockPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37758/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37758/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37758/v1/model.glb\" alt=\"Wall Clock (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37758/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37758/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37760","slug":"printing-press-and-newspaper-office-pigeonhole-rack-feeeb375","title":"Pigeonhole Rack (Printing Press and Newspaper Office)","summary":"Free 3D model of an office pigeonhole rack: a 1.4 m oak rack of thirty holes stuffed with blank copy and rolled proofs, as a game asset.","description":"Free 3D model of an office pigeonhole rack: a 1.4 m oak rack of thirty holes stuffed with blank copy and rolled proofs, as a game asset. Dimensions 1.40 by 1.18 by 0.34 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A wall or bench rack 1.40 by 0.34 m and 1.10 m tall, five rows of six holes. It is modelled standing on its base so it can sit on a counter or a bench. Static geometry with no rig. All the paper in it is blank. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-pigeonhole-rack-feeeb375","cdnUrl":"https://cdn.3dassets.dev/assets/37760/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-pigeonhole-rack-feeeb375","thumbnailUrl":"https://cdn.3dassets.dev/assets/37760/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37760/v1/poster.webp","blurhash":"U5AcG3~A00E2$%-UtQEL01Io~BxuM_k9kqRk","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":248948,"triangles":10756,"vertices":9701,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.699999988079071,-0.00003202314703099063,-0.1699696408745756],"max":[0.699999988079071,1.1759876089566672,0.1699636800792593]},"sizeMeters":[1.4,1.176,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:39.545Z","updatedAt":"2026-09-12T05:47:39.726Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37760/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PigeonholeRackPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37760/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37760/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37760/v1/model.glb\" alt=\"Pigeonhole Rack (Printing Press and Newspaper Office)\" 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/37760/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/37760/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37761","slug":"printing-press-and-newspaper-office-subs-table-84402283","title":"Subs Table (Printing Press and Newspaper Office)","summary":"Free 3D model of a sub editors table: a 2.6 m oak table spread with blank copy, paste pots and shears, for a newspaper office game asset kit.","description":"Free 3D model of a sub editors table: a 2.6 m oak table spread with blank copy, paste pots and shears, for a newspaper office game asset kit. Dimensions 2.60 by 0.89 by 1.20 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. The long table copy is cut and pasted on, 2.60 by 1.20 m at 0.77 m, with sixteen loose sheets across it, two paste pots and a pair of shears. Static geometry with no rig. Every sheet carries two abstract rule bars and no words at all. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-subs-table-84402283","cdnUrl":"https://cdn.3dassets.dev/assets/37761/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-subs-table-84402283","thumbnailUrl":"https://cdn.3dassets.dev/assets/37761/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37761/v1/poster.webp","blurhash":"U47^V*WX00%2~V-B9aI:00%2~p9a00Ef~WxG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":157548,"triangles":6532,"vertices":5872,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-1.2999999523162842,-0.000023947859114525905,-0.599911474317897],"max":[1.2999999523162842,0.8900239335539998,0.599911474317897]},"sizeMeters":[2.6,0.89,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:41.828Z","updatedAt":"2026-09-12T05:47:41.943Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37761/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SubsTablePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37761/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37761/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37761/v1/model.glb\" alt=\"Subs Table (Printing Press and Newspaper Office)\" 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/37761/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/37761/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37762","slug":"printing-press-and-newspaper-office-light-box-886823f5","title":"Light Box (Printing Press and Newspaper Office)","summary":"Free 3D model of a light box for a newspaper office: a 0.9 m oak table with a white translucent top and blank proofs on it, as a game asset.","description":"Free 3D model of a light box for a newspaper office: a 0.9 m oak table with a white translucent top and blank proofs on it, as a game asset. Dimensions 0.94 by 0.87 by 0.70 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A sloping light table 0.94 by 0.70 m at 0.78 m with a white diffusing panel and a magnifier lying on it. Static geometry with no rig. The sheets on the glass carry two abstract rule bars each, not text. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-light-box-886823f5","cdnUrl":"https://cdn.3dassets.dev/assets/37762/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-light-box-886823f5","thumbnailUrl":"https://cdn.3dassets.dev/assets/37762/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37762/v1/poster.webp","blurhash":"UAAS-[$*00Rj~qs;DiV@9uX9xuV@00oe?vNH","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":46720,"triangles":1236,"vertices":1142,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.4699999988079071,-0.000011988772054272179,-0.3486953328354815],"max":[0.4699999988079071,0.8684048190775231,0.3486953328354815]},"sizeMeters":[0.94,0.868,0.697],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:40.944Z","updatedAt":"2026-09-12T05:47:41.035Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37762/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LightBoxPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37762/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37762/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37762/v1/model.glb\" alt=\"Light Box (Printing Press and Newspaper Office)\" 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/37762/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/37762/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37763","slug":"printing-press-and-newspaper-office-photo-enlarger-58b3f020","title":"Photo Enlarger (Printing Press and Newspaper Office)","summary":"Free 3D model of a photographic enlarger: a 1.5 m column enlarger on a baseboard with a head that runs up and down, for a newspaper office game asset kit.","description":"Free 3D model of a photographic enlarger: a 1.5 m column enlarger on a baseboard with a head that runs up and down, for a newspaper office game asset kit. Dimensions 0.70 by 1.44 by 0.60 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: head at (0.00, 0.98, -0.15) m. A darkroom enlarger 0.70 by 0.56 m on the baseboard and 1.50 m to the top of the column, with a lamp house, bellows body and lens. The head travels 0.30 m up the column on the open clip and back down on close. The column, the baseboard and the focus knob are fixed, and the bellows is solid geometry because a flexible bellows needs a joint per fold. The paper on the baseboard is blank. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-photo-enlarger-58b3f020","cdnUrl":"https://cdn.3dassets.dev/assets/37763/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-photo-enlarger-58b3f020","thumbnailUrl":"https://cdn.3dassets.dev/assets/37763/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37763/v1/poster.webp","blurhash":"U471TO%100D*01NH~W%0?aoJ9GS4%2xaRjIo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":47344,"triangles":1040,"vertices":1137,"meshes":7,"materials":5,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3499910753660847,4.470348535789981e-10,-0.3199743686871633],"max":[0.3499910753660847,1.440000057220459,0.2800087756956518]},"sizeMeters":[0.7,1.44,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:41.105Z","updatedAt":"2026-09-12T05:47:41.276Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37763/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function PhotoEnlargerPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37763/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37763/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37763/v1/model.glb\" alt=\"Photo Enlarger (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37763/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37763/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37764","slug":"printing-press-and-newspaper-office-proof-board-80825b92","title":"Proof Board (Printing Press and Newspaper Office)","summary":"Free 3D model of a proof board: a 1.6 m free standing pin board hung with eight blank page proofs, for a newspaper office game asset kit.","description":"Free 3D model of a proof board: a 1.6 m free standing pin board hung with eight blank page proofs, for a newspaper office game asset kit. Dimensions 1.55 by 1.62 by 0.80 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A double sided pin board on oak posts, 1.60 m wide, 0.80 m deep over the feet and 1.62 m tall, with eight proofs pinned up in four columns. Static geometry with no rig. The proofs carry four abstract rule bars each: no headline, column of text or masthead is modelled, here or anywhere in the pack. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-proof-board-80825b92","cdnUrl":"https://cdn.3dassets.dev/assets/37764/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-proof-board-80825b92","thumbnailUrl":"https://cdn.3dassets.dev/assets/37764/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37764/v1/poster.webp","blurhash":"UBA,B_xa00Rj-oxtIpE100WV~pa#E1RP%2%f","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":134768,"triangles":5376,"vertices":4966,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.7769953608512878,0,-0.39995579453671853],"max":[0.7752953767776489,1.6202449798583984,0.39995579453671853]},"sizeMeters":[1.552,1.62,0.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:41.294Z","updatedAt":"2026-09-12T05:47:41.408Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37764/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ProofBoardPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37764/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37764/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37764/v1/model.glb\" alt=\"Proof Board (Printing Press and Newspaper Office)\" 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/37764/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/37764/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37765","slug":"printing-press-and-newspaper-office-news-board-6ea47682","title":"News Board (Printing Press and Newspaper Office)","summary":"Free 3D model of a newsvendors A board: a 1.65 m timber bill board carrying blank posters on both faces, as a game asset.","description":"Free 3D model of a newsvendors A board: a 1.65 m timber bill board carrying blank posters on both faces, as a game asset. Dimensions 1.06 by 1.63 by 0.60 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A double faced A board 1.10 m wide, 0.60 m deep over the feet and 1.65 m tall, with a blank bill pasted on each side. Every poster is plain paper with abstract rule bars standing in for the bill: no masthead, headline, slogan or word of any kind is modelled on it, in any language. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-news-board-6ea47682","cdnUrl":"https://cdn.3dassets.dev/assets/37765/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-news-board-6ea47682","thumbnailUrl":"https://cdn.3dassets.dev/assets/37765/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37765/v1/poster.webp","blurhash":"UBA]pb%g008_-Bt7NbIo00Mx~q.8RjV@aytl","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"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":67488,"triangles":2268,"vertices":1958,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.5299958801227216,-3.725290076417309e-10,-0.2996631520203561],"max":[0.5299958801227216,1.625,0.2996631520203561]},"sizeMeters":[1.06,1.625,0.599],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:43.689Z","updatedAt":"2026-09-12T05:47:43.865Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37765/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NewsBoardPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37765/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37765/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37765/v1/model.glb\" alt=\"News Board (Printing Press and Newspaper Office)\" 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/37765/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/37765/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37766","slug":"printing-press-and-newspaper-office-brick-wall-bay-61f44fe9","title":"Brick Wall Bay (Printing Press and Newspaper Office)","summary":"Free 3D model of a modular brick works wall bay: a 3 m by 4.8 m industrial wall panel with a plinth, a capping band and an internal pilaster, as a game asset.","description":"Free 3D model of a modular brick works wall bay: a 3 m by 4.8 m industrial wall panel with a plinth, a capping band and an internal pilaster, as a game asset. Dimensions 3.00 by 4.76 by 0.49 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: left (wall) at (-1.50, 0.00, 0.00) facing (-1, 0, 0); right (wall) at (1.50, 0.00, 0.00) facing (1, 0, 0). One bay of the works wall kit, 3.00 m wide, 0.30 m thick and 4.60 m to the eaves with a capping course above. Butt bays left to right on the wall ports to make a run of any length, and turn a corner by stopping each run at the other run inner face. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-brick-wall-bay-61f44fe9","cdnUrl":"https://cdn.3dassets.dev/assets/37766/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-brick-wall-bay-61f44fe9","thumbnailUrl":"https://cdn.3dassets.dev/assets/37766/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37766/v1/poster.webp","blurhash":"U5ByBS}Z000|=|-VRj9t0|J8%M$%tRtRR*IU","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":58184,"triangles":432,"vertices":371,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1.4998932573383268,0,-0.19992204264766344],"max":[1.4998932573383268,4.760000228881836,0.28992203132278094]},"sizeMeters":[3,4.76,0.49],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:42.950Z","updatedAt":"2026-09-12T05:47:43.044Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37766/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BrickWallBayPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37766/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37766/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37766/v1/model.glb\" alt=\"Brick Wall Bay (Printing Press and Newspaper Office)\" 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/37766/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/37766/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37767","slug":"printing-press-and-newspaper-office-window-wall-bay-2a601e56","title":"Window Wall Bay (Printing Press and Newspaper Office)","summary":"Free 3D model of a modular works wall bay with a factory window: a 3 m brick panel with a 2.1 by 2.6 m steel framed nine light window, as a game asset.","description":"Free 3D model of a modular works wall bay with a factory window: a 3 m brick panel with a 2.1 by 2.6 m steel framed nine light window, as a game asset. Dimensions 3.00 by 4.76 by 0.40 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: left (wall) at (-1.50, 0.00, 0.00) facing (-1, 0, 0); right (wall) at (1.50, 0.00, 0.00) facing (1, 0, 0). One bay of the works wall kit with a steel window over a stone sill, the arch band proud of the brick face so no two surfaces share a plane. It butts to the other wall bays on the wall ports. Static geometry with no rig: the casement is fixed shut. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-window-wall-bay-2a601e56","cdnUrl":"https://cdn.3dassets.dev/assets/37767/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-window-wall-bay-2a601e56","thumbnailUrl":"https://cdn.3dassets.dev/assets/37767/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37767/v1/poster.webp","blurhash":"U6Bfnd%M009Y-Vs;NGNF4TV[?^tR$*s.NGNu","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":90980,"triangles":1944,"vertices":1684,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.4998932573383268,0,-0.19988892223704965],"max":[1.4998932573383268,4.760000228881836,0.19988892223704965]},"sizeMeters":[3,4.76,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:44.041Z","updatedAt":"2026-09-12T05:47:44.130Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37767/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WindowWallBayPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37767/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37767/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37767/v1/model.glb\" alt=\"Window Wall Bay (Printing Press and Newspaper Office)\" 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/37767/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/37767/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37768","slug":"printing-press-and-newspaper-office-door-wall-bay-f7b4889b","title":"Door Wall Bay (Printing Press and Newspaper Office)","summary":"Free 3D model of a modular works wall bay with double doors: a 3 m brick panel with a 2.2 by 3.2 m boarded pair of doors that swing open, as a game asset.","description":"Free 3D model of a modular works wall bay with double doors: a 3 m brick panel with a 2.2 by 3.2 m boarded pair of doors that swing open, as a game asset. Dimensions 3.00 by 4.76 by 0.40 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door-left at (-1.08, 0.00, 0.10) m; door-right at (1.08, 0.00, 0.10) m. Connectors: left (wall) at (-1.50, 0.00, 0.00) facing (-1, 0, 0); right (wall) at (1.50, 0.00, 0.00) facing (1, 0, 0). One bay of the works wall kit carrying the goods doors, with a steel lintel and two boarded leaves on strap hinges. Each leaf is its own node and swings on the open and close clips. The brickwork, the frame and the lintel are fixed. It butts to the other wall bays on the wall ports. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-door-wall-bay-f7b4889b","cdnUrl":"https://cdn.3dassets.dev/assets/37768/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-door-wall-bay-f7b4889b","thumbnailUrl":"https://cdn.3dassets.dev/assets/37768/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37768/v1/poster.webp","blurhash":"U49GR3-W00EK~pxt4oE2IpaLslX8VsxZtRIp","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":116144,"triangles":2764,"vertices":2459,"meshes":7,"materials":4,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-1.4998932507647533,0,-0.19988892136099765],"max":[1.4998932507647533,4.760000228881836,0.19988892136099765]},"sizeMeters":[3,4.76,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:43.881Z","updatedAt":"2026-09-12T05:47:43.992Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37768/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function DoorWallBayPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37768/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37768/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37768/v1/model.glb\" alt=\"Door Wall Bay (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37768/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37768/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37769","slug":"printing-press-and-newspaper-office-works-floor-tile-fa8677ef","title":"Works Floor Tile (Printing Press and Newspaper Office)","summary":"Free 3D model of a 6 m works floor tile: a concrete bay with recessed joint strips for a printing works game asset kit.","description":"Free 3D model of a 6 m works floor tile: a concrete bay with recessed joint strips for a printing works game asset kit. Dimensions 6.00 by 0.10 by 6.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: north (floor) at (0.00, 0.10, -3.00) facing (0, 0, -1); south (floor) at (0.00, 0.10, 3.00) facing (0, 0, 1); west (floor) at (-3.00, 0.10, 0.00) facing (-1, 0, 0); east (floor) at (3.00, 0.10, 0.00) facing (1, 0, 0). One 6.00 by 6.00 m tile of the works floor, 0.10 m thick with the joint strips recessed into the surface so no two faces share a plane. Tile it edge to edge on the floor ports. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-works-floor-tile-fa8677ef","cdnUrl":"https://cdn.3dassets.dev/assets/37769/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-works-floor-tile-fa8677ef","thumbnailUrl":"https://cdn.3dassets.dev/assets/37769/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37769/v1/poster.webp","blurhash":"U39@S3-:00WF-;axM{og00IU~pRj9Fj]t6WA","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62040,"triangles":648,"vertices":554,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-3,-0.00017242920601036327,-3],"max":[3,0.1038220776592606,3]},"sizeMeters":[6,0.104,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:45.631Z","updatedAt":"2026-09-12T05:47:45.725Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37769/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WorksFloorTilePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37769/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37769/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37769/v1/model.glb\" alt=\"Works Floor Tile (Printing Press and Newspaper Office)\" 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/37769/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/37769/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37770","slug":"printing-press-and-newspaper-office-office-floor-tile-aa622335","title":"Office Floor Tile (Printing Press and Newspaper Office)","summary":"Free 3D model of a 6 m boarded office floor tile: a timber floor bay for a newspaper office game asset kit.","description":"Free 3D model of a 6 m boarded office floor tile: a timber floor bay for a newspaper office game asset kit. Dimensions 6.00 by 0.10 by 6.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: north (floor) at (0.00, 0.10, -3.00) facing (0, 0, -1); south (floor) at (0.00, 0.10, 3.00) facing (0, 0, 1); west (floor) at (-3.00, 0.10, 0.00) facing (-1, 0, 0); east (floor) at (3.00, 0.10, 0.00) facing (1, 0, 0). One 6.00 by 6.00 m tile of boarded office floor, 0.10 m thick over the sub-floor, with twenty four boards laid proud of it so the gaps read as joints rather than as coplanar faces. It tiles against the works floor on the same floor ports. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-office-floor-tile-aa622335","cdnUrl":"https://cdn.3dassets.dev/assets/37770/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-office-floor-tile-aa622335","thumbnailUrl":"https://cdn.3dassets.dev/assets/37770/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37770/v1/poster.webp","blurhash":"U17JnP[v0M${S~S3WUs.01B5^iER+tw_r]Na","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":81276,"triangles":2700,"vertices":2372,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-3,0.00008178915836082323,-3],"max":[3,0.10400476114312865,3]},"sizeMeters":[6,0.104,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:45.467Z","updatedAt":"2026-09-12T05:47:45.563Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37770/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OfficeFloorTilePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37770/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37770/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37770/v1/model.glb\" alt=\"Office Floor Tile (Printing Press and Newspaper Office)\" 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/37770/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/37770/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37771","slug":"printing-press-and-newspaper-office-roof-truss-bay-5f5a6b57","title":"Roof Truss Bay (Printing Press and Newspaper Office)","summary":"Free 3D model of a 12 m works roof truss: a riveted iron king post truss with seat plates at both ends, for a printing works game asset kit.","description":"Free 3D model of a 12 m works roof truss: a riveted iron king post truss with seat plates at both ends, for a printing works game asset kit. Dimensions 12.03 by 2.02 by 0.30 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A 12.00 m span riveted truss 1.96 m deep at the ridge, with bearing plates at both ends to sit on the wall pilasters. Place it at eaves height: the origin is on the underside of the bottom chord. Static geometry with no rig. There are no connectors on it, because it is seated on a wall rather than butted to another truss. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-roof-truss-bay-5f5a6b57","cdnUrl":"https://cdn.3dassets.dev/assets/37771/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-roof-truss-bay-5f5a6b57","thumbnailUrl":"https://cdn.3dassets.dev/assets/37771/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37771/v1/poster.webp","blurhash":"U14o7ut78_xuIU?cRjRj009F?vM{og00f5%M","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31232,"triangles":1512,"vertices":1309,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-6.014367580413818,0.00039376123862422396,-0.14977641973991138],"max":[6.014367580413818,2.020907031455468,0.14977641973991138]},"sizeMeters":[12.029,2.021,0.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:46.507Z","updatedAt":"2026-09-12T05:47:46.612Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37771/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofTrussBayPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37771/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37771/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37771/v1/model.glb\" alt=\"Roof Truss Bay (Printing Press and Newspaper Office)\" 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/37771/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/37771/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37772","slug":"printing-press-and-newspaper-office-roof-deck-bay-33320c48","title":"Roof Deck Bay (Printing Press and Newspaper Office)","summary":"Free 3D model of a 3 m roof deck bay with a glazed strip: a boarded works roof panel on a 3 m module, as a game asset.","description":"Free 3D model of a 3 m roof deck bay with a glazed strip: a boarded works roof panel on a 3 m module, as a game asset. Dimensions 3.00 by 0.26 by 4.80 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: left (roof) at (-1.50, 0.05, 0.00) facing (-1, 0, 0); right (roof) at (1.50, 0.05, 0.00) facing (1, 0, 0). One 3.00 by 4.80 m panel of boarded roof deck with corrugated sheeting over it and a glazed roof light down the centre. Butt panels left to right on the roof ports and lay them over the trusses. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-roof-deck-bay-33320c48","cdnUrl":"https://cdn.3dassets.dev/assets/37772/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-roof-deck-bay-33320c48","thumbnailUrl":"https://cdn.3dassets.dev/assets/37772/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37772/v1/poster.webp","blurhash":"U37nB=-Q00tQO@E1V@-p00EM?wNczo~Bxv9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":42360,"triangles":1188,"vertices":1034,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.4998993485193721,-0.00009918677403072257,-2.4000000953674316],"max":[1.4998993485193721,0.2599829087896152,2.4000000953674316]},"sizeMeters":[3,0.26,4.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:45.743Z","updatedAt":"2026-09-12T05:47:45.942Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37772/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofDeckBayPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37772/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37772/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37772/v1/model.glb\" alt=\"Roof Deck Bay (Printing Press and Newspaper Office)\" 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/37772/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/37772/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37773","slug":"printing-press-and-newspaper-office-line-shafting-bay-4b07873f","title":"Line Shafting Bay (Printing Press and Newspaper Office)","summary":"Free 3D model of a 6 m bay of overhead line shafting: a turning steel shaft on two iron hangers with four drive pulleys, for a printing works game asset kit.","description":"Free 3D model of a 6 m bay of overhead line shafting: a turning steel shaft on two iron hangers with four drive pulleys, for a printing works game asset kit. Dimensions 6.00 by 0.80 by 0.68 m (X by Y by Z). Metre units, +Y up, +Z front; the origin is not on the ground, see below. Animated pivot nodes: shaft at (0.00, 0.00, 0.00) m. Connectors: left (shaft) at (-3.00, 0.00, 0.00) facing (-1, 0, 0); right (shaft) at (3.00, 0.00, 0.00) facing (1, 0, 0). One 6.00 m module of the overhead drive, the shaft running through two bolted hangers with four pulleys keyed to it. The origin sits on the shaft centreline, which is not on the ground, because the shafting is hung: place it at the height you want the shaft and butt bays end to end on the shaft ports. The shaft and its pulleys turn together on the spin clip; the hangers are fixed. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-line-shafting-bay-4b07873f","cdnUrl":"https://cdn.3dassets.dev/assets/37773/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-line-shafting-bay-4b07873f","thumbnailUrl":"https://cdn.3dassets.dev/assets/37773/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37773/v1/poster.webp","blurhash":"U13[#cxsISozxt?bt6Ri00og?coeM{00WF%N","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":38004,"triangles":1320,"vertices":1688,"meshes":3,"materials":2,"textures":0,"animations":["spin"],"boundingBox":{"min":[-3,-0.3399273595909766,-0.3399273595909766],"max":[3,0.45991094317903974,0.3399273595909766]},"sizeMeters":[6,0.8,0.68],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:47.075Z","updatedAt":"2026-09-12T05:47:47.172Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37773/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LineShaftingBayPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37773/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37773/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37773/v1/model.glb\" alt=\"Line Shafting Bay (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37773/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37773/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37774","slug":"printing-press-and-newspaper-office-belt-drop-drive-8392ba10","title":"Belt Drop Drive (Printing Press and Newspaper Office)","summary":"Free 3D model of a belt drop from overhead line shafting: a 4.2 m countershaft pedestal with a turning pulley and a flat leather belt running up to the shaft, as a game asset.","description":"Free 3D model of a belt drop from overhead line shafting: a 4.2 m countershaft pedestal with a turning pulley and a flat leather belt running up to the shaft, as a game asset. Dimensions 0.70 by 4.21 by 0.70 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: pulley at (0.00, 1.25, 0.00) m. The countershaft that takes drive down from the line shafting to a machine, 0.70 m square at the base with the pulley at 1.25 m and the belt running to a shaft at 4.20 m. Place it under a shafting bay at that height. The pulley turns on the spin clip. The belt is static geometry and always will be: a flat belt is flexible material and needs a joint per span or a shader, and neither is reachable with one rigid node transform. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-belt-drop-drive-8392ba10","cdnUrl":"https://cdn.3dassets.dev/assets/37774/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-belt-drop-drive-8392ba10","thumbnailUrl":"https://cdn.3dassets.dev/assets/37774/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37774/v1/poster.webp","blurhash":"U02rs-xu00D%9FR%-;xu-;ofD%Rj-;j[D%WB","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25212,"triangles":908,"vertices":990,"meshes":4,"materials":3,"textures":0,"animations":["spin"],"boundingBox":{"min":[-0.3499476675671894,0,-0.3509726515476088],"max":[0.3499476675671894,4.214000225067139,0.3509726515476088]},"sizeMeters":[0.7,4.214,0.702],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:47.323Z","updatedAt":"2026-09-12T05:47:47.417Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37774/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BeltDropDrivePrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37774/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37774/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37774/v1/model.glb\" alt=\"Belt Drop Drive (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37774/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37774/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37775","slug":"printing-press-and-newspaper-office-electric-motor-007f6e5c","title":"Electric Motor (Printing Press and Newspaper Office)","summary":"Free 3D model of an electric drive motor on a plinth: a 1.1 m ribbed motor with a starter box and a turning drive pulley, for a printing works game asset kit.","description":"Free 3D model of an electric drive motor on a plinth: a 1.1 m ribbed motor with a starter box and a turning drive pulley, for a printing works game asset kit. Dimensions 1.14 by 0.93 by 0.86 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: pulley at (0.47, 0.63, 0.00) m. The motor that drives a bay of line shafting, 1.10 by 0.80 m on a concrete plinth with a ribbed enamel body, a starter box and a flat belt pulley. The pulley turns on the spin clip; the body, the plinth, the starter and the conduit are fixed, and the cable is solid geometry because flexible material cannot be carried by a rigid node transform. No maker is named or depicted on it. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-electric-motor-007f6e5c","cdnUrl":"https://cdn.3dassets.dev/assets/37775/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-electric-motor-007f6e5c","thumbnailUrl":"https://cdn.3dassets.dev/assets/37775/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37775/v1/poster.webp","blurhash":"U59HRu_N00Md0xflv%aK00D%IoSd=yn%.7XR","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":111556,"triangles":2416,"vertices":2663,"meshes":8,"materials":6,"textures":1,"animations":["spin"],"boundingBox":{"min":[-0.550000011920929,0.000023496570596831523,-0.3999908531167253],"max":[0.5899999749660492,0.9300128398282078,0.46000304901965877]},"sizeMeters":[1.14,0.93,0.86],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:47.575Z","updatedAt":"2026-09-12T05:47:47.684Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37775/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function ElectricMotorPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37775/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37775/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37775/v1/model.glb\" alt=\"Electric Motor (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37775/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37775/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37776","slug":"printing-press-and-newspaper-office-floor-drain-0b56c4a9","title":"Floor Drain (Printing Press and Newspaper Office)","summary":"Free 3D model of a works floor drain: a 0.72 m iron grating set in a concrete surround, as a game asset.","description":"Free 3D model of a works floor drain: a 0.72 m iron grating set in a concrete surround, as a game asset. Dimensions 0.72 by 0.09 by 0.72 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A floor gulley 0.72 m square and 0.08 m proud of the floor, the grating bars raised above the recessed sump so no two faces share a plane. Static geometry with no rig. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-floor-drain-0b56c4a9","cdnUrl":"https://cdn.3dassets.dev/assets/37776/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-floor-drain-0b56c4a9","thumbnailUrl":"https://cdn.3dassets.dev/assets/37776/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37776/v1/poster.webp","blurhash":"U28;V=_300IB?bM|Ri%L009G%hWU4m%LWFD*","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":73728,"triangles":1188,"vertices":1031,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.36000001430511475,-0.00001556596782024272,-0.36000001430511475],"max":[0.36000001430511475,0.08550963794083408,0.36000001430511475]},"sizeMeters":[0.72,0.086,0.72],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:48.770Z","updatedAt":"2026-09-12T05:47:48.861Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37776/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FloorDrainPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37776/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37776/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37776/v1/model.glb\" alt=\"Floor Drain (Printing Press and Newspaper Office)\" 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/37776/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/37776/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37777","slug":"printing-press-and-newspaper-office-counter-front-with-d13093c0","title":"Counter Front With Hatch (Printing Press and Newspaper Office)","summary":"Free 3D model of a newspaper office front counter: a 3 m panelled oak counter with a brass grille and a lifting hatch, as a game asset.","description":"Free 3D model of a newspaper office front counter: a 3 m panelled oak counter with a brass grille and a lifting hatch, as a game asset. Dimensions 3.06 by 1.23 by 0.73 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: hatch at (-0.78, 1.06, 0.02) m. A public counter 3.00 m wide, 0.72 m deep and 1.12 m high, panelled on the public face with a brass grille at one end. The hatch at the other end lifts on the open and close clips. The carcass, the panels and the grille are fixed. The pad on the counter is blank paper with two abstract rule bars on it. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-counter-front-with-d13093c0","cdnUrl":"https://cdn.3dassets.dev/assets/37777/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-counter-front-with-d13093c0","thumbnailUrl":"https://cdn.3dassets.dev/assets/37777/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37777/v1/poster.webp","blurhash":"U28W8C#70z^%?t}o$yFx01.6?FD*4o%fx[My","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":54944,"triangles":1500,"vertices":1428,"meshes":6,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-1.5299999713897705,0.000007032112952054526,-0.359912099962534],"max":[1.5299999713897705,1.229997950768483,0.36998019078276473]},"sizeMeters":[3.06,1.23,0.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:48.828Z","updatedAt":"2026-09-12T05:47:48.928Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37777/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CounterFrontWithHatchPrintingPressAndNewspaperOffice(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37777/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37777/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37777/v1/model.glb\" alt=\"Counter Front With Hatch (Printing Press and Newspaper Office)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37777/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37777/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37778","slug":"printing-press-and-newspaper-office-works-staircase-6732acfa","title":"Works Staircase (Printing Press and Newspaper Office)","summary":"Free 3D model of a works staircase: a 3.2 m run of iron stairs rising 2.8 m to a railed landing, for a printing works game asset kit.","description":"Free 3D model of a works staircase: a 3.2 m run of iron stairs rising 2.8 m to a railed landing, for a printing works game asset kit. Dimensions 4.54 by 4.01 by 1.30 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A straight flight of fourteen chequer plate treads on iron strings, 1.10 m wide, rising 2.80 m over a 3.20 m going to a railed landing. Handrails run both sides and the landing is railed on three. Static geometry with no rig and no collision data. Letterpress works palette: worn concrete, works brick, cast iron, machine enamel green, bright steel, brass, dark oak, pale pine, newsprint, printing ink black, type metal, brass and window glass. Standard PBR materials with embedded procedural maps. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-works-staircase-6732acfa","cdnUrl":"https://cdn.3dassets.dev/assets/37778/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-works-staircase-6732acfa","thumbnailUrl":"https://cdn.3dassets.dev/assets/37778/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37778/v1/poster.webp","blurhash":"U15E,39E00?cR-RoD$xt00IT%g_39D%g~q9E","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"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":192996,"triangles":9552,"vertices":8352,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-1.681472659111023,0.0000020884181828328963,-0.6500984837033363],"max":[2.859999895095825,4.008700189719024,0.6500984837033363]},"sizeMeters":[4.541,4.009,1.3],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:50.943Z","updatedAt":"2026-09-12T05:47:51.041Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37778/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WorksStaircasePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37778/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37778/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37778/v1/model.glb\" alt=\"Works Staircase (Printing Press and Newspaper Office)\" 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/37778/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/37778/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37780","slug":"printing-press-and-newspaper-office-news-d5e33c3b-starter-scene","title":"Newspaper Works Floor (Printing Press and Newspaper Office)","summary":"A 36 by 24 m newspaper works built from the wall and floor kit and left open topped on purpose, so the whole floor is walkable and in view from above: the back wall and both end walls are up, with factory windows and goods doors in them, and the overhead line shafting runs on...","description":"A 36 by 24 m newspaper works built from the wall and floor kit and left open topped on purpose, so the whole floor is walkable and in view from above: the back wall and both end walls are up, with factory windows and goods doors in them, and the overhead line shafting runs on the press bay only, on four 6 m hangers with three belt drops and the drive motor under it. There is no roof and no front wall. At the west end the rotary press runs as four butted sections from the drive unit through two printing units to the folder, fed by two reel stands and two web path roller frames, with spare reels, trolleys, the plate casting box and the plate rack behind it and two flatbed cylinder presses, two platen jobbing presses and a proof press in front. The middle of the floor is the composing room: three linecasting machines along the back wall, five type case cabinets beside them, two composing stones, the imposing stone with two chases locked up on it, two make-up tables, two galley racks and the furniture racks, with stools, loose galleys and chases where the work is. Across the front are the guillotine, the folding tables, the bundling presses and the wire stitchers, with skids of newsprint, waste bins and hand trucks between them. The east bay is the editorial office on a boarded floor: two editors desks with typewriters, telephones and copy spikes, the subs table, the filing cabinets, the pigeonhole rack, the light box and the enlarger, the proof board, the wall clock, the front counter with its hatch and two news boards at the street side. Every printed surface in the scene is blank or carries abstract rule bars: nothing spells a masthead, a headline or a word.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-news-d5e33c3b-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/37780/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-news-d5e33c3b-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/37780/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37780/v1/poster.webp","blurhash":"U3AA5Z?w00R4=w$*S5Na00H??vXTAaNaRjae","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"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":5229648,"triangles":234312,"vertices":244154,"meshes":410,"materials":12,"textures":2,"animations":[],"boundingBox":{"min":[-18.28992203132278,-0.10017242920601037,-12.289922031322781],"max":[18.28992203132278,4.760000228881836,12]},"sizeMeters":[36.58,4.86,24.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:52.902Z","updatedAt":"2026-09-12T05:47:53.069Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37780/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function NewspaperWorksFloorPrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37780/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37780/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37780/v1/model.glb\" alt=\"Newspaper Works Floor (Printing Press and Newspaper Office)\" 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/37780/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/37780/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37779","slug":"printing-press-and-newspaper-office-dispatch-bay-and-r-9ee39f84","title":"Dispatch Bay and Reel Store (Printing Press and Newspaper Office)","summary":"A 12 by 12 m roofed dispatch shed beside the press hall, built from the same kit: brick and window bays on three sides with goods doors at the back and the end, three 12 m trusses on the walls and eight roof deck bays with their glazed strips over them. Inside, a bay of line...","description":"A 12 by 12 m roofed dispatch shed beside the press hall, built from the same kit: brick and window bays on three sides with goods doors at the back and the end, three 12 m trusses on the walls and eight roof deck bays with their glazed strips over them. Inside, a bay of line shafting drives the guillotine, the folding table, the stitcher and the bundling press off a belt drop and the motor, and the floor is stacked with skids of newsprint, spare reels, a reel trolley and a hand truck, with the dispatch counter and a news board at the open front.","status":"published","url":"https://3dassets.dev/assets/printing-press-and-newspaper-office-dispatch-bay-and-r-9ee39f84","cdnUrl":"https://cdn.3dassets.dev/assets/37779/v1/model.glb","downloadUrl":"https://3dassets.dev/download/printing-press-and-newspaper-office-dispatch-bay-and-r-9ee39f84","thumbnailUrl":"https://cdn.3dassets.dev/assets/37779/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37779/v1/poster.webp","blurhash":"U5Av^E~q00D%F3Iov|%K00IAT0bb-U-=OaD*","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"historical","title":"Historical"},{"slug":"realistic","title":"Realistic"},{"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":1434744,"triangles":64852,"vertices":62305,"meshes":116,"materials":12,"textures":2,"animations":[],"boundingBox":{"min":[-6.289983762081807,-0.10017242920601037,-6.289922031322781],"max":[6.289983762081807,6.620907031455467,6]},"sizeMeters":[12.58,6.721,12.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:47:51.730Z","updatedAt":"2026-09-12T05:47:51.829Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37779/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DispatchBayAndReelStorePrintingPressAndNewspaperOffice(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37779/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37779/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37779/v1/model.glb\" alt=\"Dispatch Bay and Reel Store (Printing Press and Newspaper Office)\" 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/37779/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/37779/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":{"slug":"printing-press-and-newspaper-office","title":"The Newspaper Works","url":"https://3dassets.dev/demos/printing-press-and-newspaper-office"}}}