{"data":{"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);"}}}