Polyfork BrowseKits

T Junction Decal

free remixable
drag to orbit · scroll to zoom

132 tris · 1 material · 8×0.02×4.14 m · GLB 15 KB

Part hierarchy (toggle visibility)

Use it

The fastest path in three.js: one import, zero loaders. The module returns a ready THREE.Group with named parts.

import { createAsset } from 'https://polyfork.dev/cdn/t-junction-decal-7528bd.mjs';
scene.add(createAsset());

Downloaded it instead? Import './t-junction-decal-7528bd.mjs' and add the importmap below. The zip ships a working index.html with both already in place.

Full working example (a complete copy-paste HTML page)
<!doctype html>
<script type="importmap">
{ "imports": { "three": "https://unpkg.com/[email protected]/build/three.module.js",
               "three/addons/": "https://unpkg.com/[email protected]/examples/jsm/" } }
</script>
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { createAsset } from 'https://polyfork.dev/cdn/t-junction-decal-7528bd.mjs';

const scene = new THREE.Scene();
scene.background = new THREE.Color(0xf3ecdc);
const camera = new THREE.PerspectiveCamera(45, innerWidth / innerHeight, 0.1, 100);
camera.position.set(3, 2, 4);
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(innerWidth, innerHeight);
document.body.style.margin = 0;
document.body.appendChild(renderer.domElement);
scene.add(new THREE.HemisphereLight(0xffffff, 0x998877, 1.2));
const sun = new THREE.DirectionalLight(0xfff2e0, 2);
sun.position.set(4, 7, 5);
scene.add(sun);

scene.add(createAsset());
new OrbitControls(camera, renderer.domElement);
renderer.setAnimationLoop(() => renderer.render(scene, camera));
</script>

The standard route: load the GLB with GLTFLoader. The same file works in any glTF pipeline (Babylon.js, <model-viewer>, custom engines).

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

new GLTFLoader().load('https://polyfork.dev/cdn/t-junction-decal-7528bd.glb', (gltf) => {
  scene.add(gltf.scene); // real-world scale in meters, origin on the ground
});

Flat-shaded vertex colors on a single material: no textures to wire up, one draw call.

  1. Download the .glb from this page.
  2. Unity: drag the file into Assets (glTFast or UnityGLTF import it). Godot: drop it into the project, it imports natively. Blender: File → Import → glTF 2.0.
  3. Place it as-is: real-world scale in meters, origin at ground level.
  4. Materials arrive as vertex colors on one material: no texture files, nothing to relink.

Using Claude Code, Cursor or another coding agent? This site is built for them: agent-readable docs at /llms.txt and a JSON API at /api. Paste this prompt:

Add the "T Junction Decal" low-poly model from polyfork.dev
to my three.js scene. It is free and hotlinkable, nothing to download:

  ES module: https://polyfork.dev/cdn/t-junction-decal-7528bd.mjs
             (import { createAsset } - returns a THREE.Group, real-world scale)
  GLB:       https://polyfork.dev/cdn/t-junction-decal-7528bd.glb

Full metadata (size, palette, rigged parts): https://polyfork.dev/api/assets/t-junction-decal-7528bd
Site docs for agents: https://polyfork.dev/llms.txt

Every asset in this catalog shares one identical vertex-colored material, with no textures at all. That means whole scenes collapse into a single draw call: the same result Synty-style packs get from a texture atlas, without the atlas.

import { mergeAssets } from 'https://polyfork.dev/cdn/merge.mjs';

// position your assets first, then:
const { merged, dynamic } = mergeAssets([
  terrain, tree, rock,
  asset,
]);
scene.add(merged);                  // ONE draw call, static
dynamic.forEach(d => scene.add(d)); // rigged parts, still movable

Placing many copies of one model? Use THREE.InstancedMesh instead: one draw call and even less memory. The landing page's forest demo ends with exactly this merge.

T Junction DecalFree

Hotlink or download it. The snippet below just works.

All 41 matching parts, this one included

In production · watch it grow

  • 132 triangles · 1 material
  • 8 × 0.02 × 4.14 m, real-world scale
  • GLB (15 KB) + drop-in ES module
  • Commercial license: games, apps, client work, anything. No attribution required. (No reselling the raw assets.)

The zip holds the ES module, the GLB and a ready index.html: serve the folder and it renders.
Free: create a free account to download. Hotlinking from the CDN needs no account.

Related assets

Free Sidewalk Tile low-poly 3D model
Sidewalk Tile
284 tris
Wire Trash Basket low-poly 3D model
Wire Trash Basket
644 tris
Free Traffic Cone low-poly 3D model
Traffic Cone
200 tris
Free Steam Stack low-poly 3D model
Steam Stack
256 tris
Free Shop Awning low-poly 3D model
Shop Awning
180 tris
Street Tile low-poly 3D model
Street Tile
554 tris
Polyfork

Sign in

One account for your purchases and downloads.

Continue with Google
or

No password needed: the link signs you in directly.