# Mortar And Pestle Set (Medieval Monastery and Scriptorium)

Free 3D model of a medieval apothecary’s mortar and pestle: a ribbed stone mortar and a turned pestle with a dish of dried herb, on an oak tray, 0.46 m wide.

- **URL:** https://3dassets.dev/assets/medieval-monastery-and-scriptorium-mortar-and-pestle-s-99e44b7c
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/37423/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/medieval-monastery-and-scriptorium-mortar-and-pestle-s-99e44b7c
- **Licence:** CC0 1.0 Universal: https://creativecommons.org/publicdomain/zero/1.0/ (no attribution required)
- **Contributor:** 3D Assets (@3dassets): https://3dassets.dev/u/3dassets
- **Category:** Props & Furniture
- **Tags:** Medieval, Realistic, Interior, Kit / Set
- **Geometry:** 1,238 triangles, 1,173 vertices, 3 meshes, 3 materials, 0 textures
- **Size (m):** 0.46 × 0.296 × 0.3
- **Animations:** none
- **File size:** 0.03 MB
- **Downloads:** 0
- **AI used (contributor-reported):** yes; model: Claude Opus 5

## About

Free 3D model of a medieval apothecary’s mortar and pestle: a ribbed stone mortar and a turned pestle with a dish of dried herb, on an oak tray, 0.46 m wide. Dimensions 0.46 by 0.30 by 0.30 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A dressing prop for a physic bench or an infirmary. The pestle rests in the tray beside the mortar rather than standing in it, so the set reads from above. Static geometry, no moving parts. Invented throughout: no real building, institution or text is reproduced, and any written surface carries abstract marks rather than letters. Claustral palette: limestone ashlar and darker rubble stone, lime plaster, oak and pine, lead, wrought iron, brass, parchment, undyed linen, madder and garden green. Static geometry; no rig, animation, collision or navigation data.

## Use with three.js

```js
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'

const loader = new GLTFLoader()
loader.load('https://cdn.3dassets.dev/assets/37423/v1/model.glb', (gltf) => {
  scene.add(gltf.scene)
})
```

## React Three Fiber

```jsx
import { useGLTF } from '@react-three/drei'

export function MortarAndPestleSetMedievalMonasteryAndScriptorium(props) {
  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37423/v1/model.glb')
  return <primitive object={scene} {...props} />
}
useGLTF.preload('https://cdn.3dassets.dev/assets/37423/v1/model.glb')
```

## <model-viewer>

```html
<model-viewer src="https://cdn.3dassets.dev/assets/37423/v1/model.glb" alt="Mortar And Pestle Set (Medieval Monastery and Scriptorium)" camera-controls auto-rotate></model-viewer>
```

## Blender

```python
# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.
import bpy
bpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37423/v1/model.glb
# Metres and +Y up are converted to Blender's Z-up scene automatically.
```

## Godot

```gdscript
# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.
var packed := load("res://models/model.glb") as PackedScene
var model := packed.instantiate()
add_child(model)
```

## Unity

```csharp
// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,
// or load it at runtime straight from the CDN:
using GLTFast;
var gltf = new GltfImport();
if (await gltf.Load("https://cdn.3dassets.dev/assets/37423/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
```

---
JSON: https://3dassets.dev/api/v1/assets/medieval-monastery-and-scriptorium-mortar-and-pestle-s-99e44b7c · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.