tresjs

Use when building 3D scenes with TresJS (Vue Three.js) - provides TresCanvas, composables (useTres, useLoop), Cientos helpers (OrbitControls, useGLTF, Environment), and post-processing effects

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "tresjs" with this command: npx skills add onmax/nuxt-skills/onmax-nuxt-skills-tresjs

TresJS

Vue 3 framework for building 3D scenes with Three.js. Declarative components that wrap Three.js objects.

Packages: @tresjs/core (required), @tresjs/cientos (helpers), @tresjs/post-processing (effects)

Installation

# Core (required)
pnpm add three @tresjs/core

# Helpers - controls, loaders, materials, staging
pnpm add @tresjs/cientos

# Post-processing effects
pnpm add @tresjs/post-processing

Quick Reference

Working on...Load file
TresCanvas, useTres, useLoopreferences/core.md
Controls, loaders, materialsreferences/cientos.md
Bloom, glitch, DOF effectsreferences/effects.md
Common patterns, recipesreferences/cookbook.md

Loading Files

Load based on your task:

DO NOT load all files at once. Load only what's relevant.

Core Concepts

TresCanvas

Root component that creates WebGL renderer and scene:

<script setup lang="ts">
import { TresCanvas } from '@tresjs/core'
</script>

<template>
  <TresCanvas shadows alpha>
    <TresPerspectiveCamera :position="[5, 5, 5]" />
    <TresMesh>
      <TresBoxGeometry />
      <TresMeshStandardMaterial color="orange" />
    </TresMesh>
    <TresAmbientLight :intensity="0.5" />
    <TresDirectionalLight :position="[3, 3, 3]" :intensity="1" />
  </TresCanvas>
</template>

Component Naming

All Three.js classes available as Vue components with Tres prefix:

  • THREE.PerspectiveCamera<TresPerspectiveCamera />
  • THREE.Mesh<TresMesh />
  • THREE.BoxGeometry<TresBoxGeometry />
  • THREE.MeshStandardMaterial<TresMeshStandardMaterial />

Constructor arguments via :args prop:

<TresPerspectiveCamera :args="[75, 1, 0.1, 1000]" />

Reactivity

Props are reactive - changes update the 3D scene:

<script setup>
const color = ref('orange')
const position = ref([0, 0, 0])
</script>

<template>
  <TresMesh :position="position">
    <TresMeshStandardMaterial :color="color" />
  </TresMesh>
</template>

Primitive Component

Inject existing Three.js objects directly:

<script setup>
import { useGLTF } from '@tresjs/cientos'
const { scene } = await useGLTF('/model.glb')
</script>

<template>
  <primitive :object="scene" />
</template>

Available Guidance

references/core.md - TresCanvas props, useTres, useLoop, useGraph, events, performance

references/cientos.md - OrbitControls, useGLTF, useTexture, Environment, Sky, materials, shapes

references/effects.md - EffectComposer vs EffectComposerPmndrs, bloom, glitch, DOF, effect stacking

references/cookbook.md - Load 3D model, camera with controls, animation loop, post-processing

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

reka-ui

No summary provided by upstream source.

Repository SourceNeeds Review
2.1K-onmax
General

nuxt

No summary provided by upstream source.

Repository SourceNeeds Review
General

vue

No summary provided by upstream source.

Repository SourceNeeds Review
1.9K-onmax
General

nuxt-ui

No summary provided by upstream source.

Repository SourceNeeds Review
1.6K-onmax