Skip to content
stevehsudrawing edited this page Sep 29, 2026 · 5 revisions

skinview3d-etf

Warning

This project is in alpha. The public API, rendering behavior, package layout and documentation may still change in any 0.x release; treat every minor release as potentially breaking. Do not use it in production yet.

Unofficial, community-built extension for skinview3d (GitHub | npm) that renders ETF (Entity Texture Features) player skin features on the 3D player model. Not affiliated with or endorsed by the ETF or skinview3d projects.

1. What it renders

  • transparency on the base skin layer;
  • emissive pixels;
  • blinking eyes;
  • nose (villager and textured);
  • enchanted pixel overlay;
  • jacket/dress extension.

The decoder (decodeSkin()) reads every ETF player skin feature - the jacket and enchanted data included - and is complete and unit-tested; the renderer draws all six families on a live viewer. See Options for every knob and Getting Started for the integration guide.

2. Install and quick start

npm install skinview3d-etf

skinview3d and three (GitHub | npm) are peer dependencies, so install the versions the viewer already uses.

import { SkinViewer } from "skinview3d";
import { attachETFSkinFeatures } from "skinview3d-etf";

const viewer = new SkinViewer({ canvas, width: 400, height: 400 });
await viewer.loadSkin(skinUrl);

const controller = attachETFSkinFeatures(viewer, {
  features: { transparency: true, emissive: true, nose: true },
  blink: { periodMs: [4000, 10000], closedMs: 200 },
  onWarning: (message) => console.warn(message),
});

// Required after every viewer.loadSkin() call:
controller.refresh();

// Restores every artifact and leaves the viewer exactly as it was:
controller.detach();

3. Documentation

  • Getting Started - install, attach, lifecycle and the standalone decoder;
  • Options - the option groups, defaults, runtime setters and the migration notes;
  • FAQ - common questions and answers.

4. Project links

5. Browser support

The build targets ES2022 and the runtime expects WebGL 2 (matching the three release's own browser target); the current versions of Chrome, Edge, Opera, Firefox and Safari all qualify.

skinview3d-etf

Clone this wiki locally