Introducción

Nos complace anunciar la disponibilidad de Aspose.3D FOSS para TypeScript como el @aspose/3d paquete npm. Esta biblioteca bajo licencia MIT ofrece procesamiento de escenas 3D de calidad de producción a aplicaciones TypeScript y Node.js sin requerir binarios nativos, toolchains específicos de plataforma, ni licencias comerciales.

La biblioteca está diseñada alrededor de una sencilla Scene API: cargar un archivo 3D con scene.open(), inspeccionar o transformar el grafo de escena, y escribir el resultado con scene.save(). Las definiciones de tipos completas de TypeScript están incluidas; no separado @types/ paquete es necesario.

Características clave

E/S multiformato. El paquete lee y escribe seis formatos 3D principales en una única instalación. OBJ, glTF 2.0, GLB, STL, 3MF y COLLADA admiten tanto importación como exportación. Existen clases de importador/exportador FBX, pero la detección automática de formato aún no está implementada, por lo que los archivos FBX no pueden cargarse a través de scene.open().

Soporte de TypeScript de primera clase. Todas las clases públicas, enumeraciones y tipos de opciones están completamente tipados. Los IDEs con soporte del servicio de lenguaje TypeScript (VS Code, WebStorm, etc.) proporcionan autocompletado preciso y documentación en línea para cada llamada a la API.

Compatibilidad con Node.js 18–22+. El paquete se prueba con las versiones LTS de Node.js 18, 20 y 22. No se compilan complementos nativos durante la instalación, por lo que funciona en todas las plataformas que soporta Node.js.

Una dependencia en tiempo de ejecución. La única dependencia es xmldom, usado exclusivamente para el análisis de XML COLLADA. Todos los demás analizadores de formatos son implementaciones puras en JavaScript.

Licencia MIT. Usar @aspose/3d en proyectos comerciales, de código abierto o internos sin restricción.

Inicio rápido

Instale el paquete:

npm install @aspose/3d

Cargue un archivo OBJ y conviértalo a un GLB binario:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true;   // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);

console.log('Converted to GLB successfully');

Itere sobre los nodos de la escena para inspeccionar la geometría:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());

for (const node of scene.rootNode.childNodes) {
    console.log(`Node: ${node.name}`);
    if (node.entity) {
        console.log(`  Entity type: ${node.entity.constructor.name}`);
    }
}

Formatos compatibles

FormatoExtensiónImportarExportarNotas
Wavefront OBJ.objLectura/escritura .mtl archivos de material
glTF 2.0.gltfJSON con externo .bin búfer
GLB binario.glbConjunto binaryMode: true en GltfSaveOptions
STL.stlSTL ASCII y binario
3MF.3mfArchivo Open Packaging Convention
FBX.fbxNo*No*El importador/exportador existe pero la detección automática del formato no está conectada
COLLADA.daeRequiere empaquetado xmldom dependencia

Ventajas de TypeScript

Trabajando con @aspose/3d en TypeScript detecta errores de categoría en tiempo de compilación en lugar de en tiempo de ejecución. Cuando llamas scene.save(), el compilador verifica que el objeto de opciones coincida con el SaveOptions subtipo «<SEG_3»> esperado para el formato seleccionado.

Las opciones de carga y guardado específicas de cada formato exponen solo las propiedades relevantes para ese formato; no hay una bolsa de opciones sin tipar en la que adivinar., GltfSaveOptions.binaryMode Por ejemplo, boolean,es un tipado saveOpts.binaryMode = 'yes' , por lo que el compilador rechaza AnimationClip,antes de que se ejecute cualquier código. Propiedades de animación en PbrMaterial, canales de material en VertexElement , y tipos de elementos de vértice en son todos tipados de manera similar y descubribles a través de IntelliSense sin consultar documentación externa.

Código abierto

El paquete se publica bajo la Licencia MIT. El código fuente está disponible en GitHub. Se agradecen contribuciones, informes de errores y solicitudes de soporte de formatos a través del rastreador de incidencias del repositorio.

La biblioteca tiene una dependencia en tiempo de ejecución: xmldom versión 0.9+, usada solo al leer o escribir archivos COLLADA. Todos los demás analizadores y generadores son implementaciones autónomas de JavaScript puro sin componentes binarios.

Comenzando

Conclusión

@aspose/3d La versión 24.12.0 proporciona una base estable, tipada y con pocas dependencias para el procesamiento de archivos 3D en TypeScript y Node.js. Ya sea que el caso de uso sea la conversión de formatos, la inspección de escenas, la extracción de geometría o la integración en pipelines, la biblioteca cubre los formatos de intercambio 3D más comunes bajo una licencia de código abierto permisiva.

Instálala hoy y cuéntanos qué construyes.