Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@newkrok/three-utils

NewKrok320MIT2.0.1TypeScript support: included

Three.js-based utility library providing essential tools for THREE.js applications including assets loading, audio management, geometry utilities, and more.

three, three.js, threejs, utils, utilities, assets, audio, texture, model, webgl, 3d, geometry, javascript, typescript, game development, 3d applications

readme

THREE Utils

Run Tests NPM Version NPM Downloads Bundle Size

Three.js-based utility library providing essential tools for THREE.js applications including assets loading, audio management, geometry utilities, and more.

Features

Asset Management - Streamlined loading and management of 3D models, textures, and other assets • Audio Integration - Easy-to-use audio management for 3D environments • Geometry Utilities - Helper functions for geometric calculations and operations • Object Utilities - Deep object manipulation, merging, and comparison tools • Time Utilities - Time formatting and management functions • Vector3 Utilities - Enhanced Vector3 operations and calculations • Callback Utilities - Advanced callback management and throttling • Dispose Utilities - Memory management and cleanup helpers • Token Utilities - Unique ID generation and token management • TypeScript Support - Full TypeScript definitions included • Modular Exports - Import only what you need for optimal bundle size

Live Demo & Examples

🚀 Coming Soon - Interactive examples and live demonstrations

Installation

NPM

npm install @newkrok/three-utils

CDN (Browser)

Include the script directly in your HTML:

<script src="https://cdn.jsdelivr.net/npm/@newkrok/three-utils@latest/dist/three-utils.min.js"></script>
<!-- or -->
<script src="https://unpkg.com/@newkrok/three-utils@latest/dist/three-utils.min.js"></script>

Usage

Basic Import

import { 
  CallbackUtils, 
  DisposeUtils, 
  ObjectUtils, 
  TimeUtils, 
  TokenUtils, 
  Vector3Utils, 
  GeomUtils 
} from '@newkrok/three-utils';

// Generate a unique ID
const uniqueId = TokenUtils.getUniqueId();

// Format time display
const formattedTime = TimeUtils.formatTime(65432); // "01:05"

// Deep merge objects
const merged = ObjectUtils.deepMerge(obj1, obj2);

// Vector3 operations
const absVector = Vector3Utils.absVector3(someVector);

Modular Import

// Import specific modules only
import { CallbackUtils } from '@newkrok/three-utils';
import { GeomUtils } from '@newkrok/three-utils';

// Use callback throttling
CallbackUtils.callWithReducer('myKey', myFunction, 16); // ~60fps

// Check if point is in triangle
const isInside = GeomUtils.isPointInATriangle(point, triangle);

Asset Loading

import { Assets } from '@newkrok/three-utils/assets';

// Load 3D models, textures, and other assets
// (See API documentation for detailed usage)

Audio Management

import { Audio } from '@newkrok/three-utils/audio';

// Manage 3D audio in your Three.js scenes
// (See API documentation for detailed usage)

Used In

This utility library is actively used in various Three.js projects:

Documentation

Automatically generated TypeDoc: https://newkrok.github.io/three-utils/

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT © Istvan Krisztian Somoracz