THREE Utils
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-utilsCDN (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:
- Three Game - 3D game development framework
Documentation
Automatically generated TypeDoc: https://newkrok.github.io/three-utils/
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.