# Vacuum Bot (Robots and Drones Kit)

0.6 m robot vacuum with spinning brush for interior scenes.

- **URL:** https://3dassets.dev/assets/robots-and-drones-kit-vacuum-bot-0f99432d
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/38984/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/robots-and-drones-kit-vacuum-bot-0f99432d
- **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:** Sci-Fi, Realistic, Kit / Set, Animated
- **Geometry:** 608 triangles, 1,440 vertices, 8 meshes, 6 materials, 0 textures
- **Size (m):** 0.6 × 0.34 × 0.591
- **Animations:** open, close, spin
- **File size:** 0.03 MB
- **Downloads:** 1
- **AI used (contributor-reported):** yes; model: Muse Spark via T3 Code

## About

Disc shaped cleaning robot with a spinning under brush, dust lid and bumper ring. Dimensions 0.60 by 0.34 by 0.59 m (X by Y by Z). Origin at the footprint centre, resting on y = 0; metres, +Y up, +Z forward. Named pivots: brush at (0, 0.02, 0.18); lid at (0, 0.3, -0.17). Rigid node-transform clips: open, close and spin. No skinning. No collision or navigation data. The brush spins under the nose and the lid lifts on its back edge. The shell is static. Original design for the robots and drones kit.

## Use with three.js

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

let mixer

const loader = new GLTFLoader()
loader.load('https://cdn.3dassets.dev/assets/38984/v1/model.glb', (gltf) => {
  scene.add(gltf.scene)
  mixer = new AnimationMixer(gltf.scene)
  mixer.clipAction(gltf.animations[0]).play()
})

// Call from your render loop; deltaSeconds is time since the previous frame.
function updateAssetAnimation(deltaSeconds) {
  mixer?.update(deltaSeconds)
}
```

## React Three Fiber

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

export function VacuumBotRobotsAndDronesKit(props) {
  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/38984/v1/model.glb')
  const { actions, names } = useAnimations(animations, scene)
  useEffect(() => {
    const action = actions[names[0]]
    action?.reset().play()
    return () => { action?.stop() }
  }, [actions, names])
  return <primitive object={scene} {...props} />
}
useGLTF.preload('https://cdn.3dassets.dev/assets/38984/v1/model.glb')
```

## <model-viewer>

```html
<model-viewer src="https://cdn.3dassets.dev/assets/38984/v1/model.glb" alt="Vacuum Bot (Robots and Drones Kit)" camera-controls auto-rotate autoplay></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/38984/v1/model.glb
# Metres and +Y up are converted to Blender's Z-up scene automatically.
# Clips arrive as actions; play them from the Dope Sheet > Action Editor.
```

## 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)
var player := model.find_child("AnimationPlayer", true, false) as AnimationPlayer
player.play(player.get_animation_list()[0])
```

## 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/38984/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first.
```

---
JSON: https://3dassets.dev/api/v1/assets/robots-and-drones-kit-vacuum-bot-0f99432d · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.