# Court Line Markings (Tennis Club and Courts)

The full painted line set for one doubles court, 10.97 by 23.77 m on a 6 mm court blue base pad: baselines, tramlines, singles sidelines, both service lines, the centre service line and the baseline centre marks.

- **URL:** https://3dassets.dev/assets/tennis-club-and-courts-court-line-markings-d174ea58
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/33606/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/tennis-club-and-courts-court-line-markings-d174ea58
- **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:** Environments & Scenes
- **Tags:** Modern, Stylized, Exterior
- **Geometry:** 144 triangles, 432 vertices, 2 meshes, 2 materials, 0 textures
- **Size (m):** 10.969 × 0.018 × 23.77
- **Animations:** none
- **File size:** 0.01 MB
- **Downloads:** 0
- **AI used (contributor-reported):** yes; model: Claude Opus 5

## About

The full painted line set for one doubles court, 10.97 by 23.77 m on a 6 mm court blue base pad: baselines, tramlines, singles sidelines, both service lines, the centre service line and the baseline centre marks. Dimensions 10.97 by 0.02 by 23.77 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. A single 18 mm thick piece laid over the surface tiles, origin at the centre of the court on the net line. The base pad is the court colour so the marked area reads on its own; lines are modelled as raised strips rather than painted into a texture, so the court reads the same in any renderer. Baseline low-poly palette: court blue, surround green, clay terracotta, white, charcoal, steel, timber and ball yellow. 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/33606/v1/model.glb', (gltf) => {
  scene.add(gltf.scene)
})
```

## React Three Fiber

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

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

## <model-viewer>

```html
<model-viewer src="https://cdn.3dassets.dev/assets/33606/v1/model.glb" alt="Court Line Markings (Tennis Club and Courts)" 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/33606/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/33606/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
```

---
JSON: https://3dassets.dev/api/v1/assets/tennis-club-and-courts-court-line-markings-d174ea58 · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.