Introducción
Nos complace anunciar la disponibilidad de Aspose.3D FOSS para TypeScript como el @aspose/3d paquete npm. Esta biblioteca bajo licencia MIT lleva 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 se incluyen; no se requiere un @types/ paquete adicional.
Características clave
E/S multiformato. El paquete lee y escribe seis formatos 3D principales en una única instalación. OBJ es compatible para importación; 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.) ofrecen 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 XML de 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
| Formato | Extensión | Importar | Exportar | Notas |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Sí | No | Solo importar; lee .mtl archivos de material |
| glTF 2.0 | .gltf | Sí | Sí | JSON con externo .bin búfer |
| GLB binario | .glb | Sí | Sí | Conjunto binaryMode: true en GltfSaveOptions |
| STL | .stl | Sí | Sí | STL ASCII y binario |
| 3MF | .3mf | Sí | Sí | Archivo Open Packaging Convention |
| FBX | .fbx | No* | No* | El importador/exportador existe pero la detección automática de formato no está conectada |
| COLLADA | .dae | Sí | Sí | Requiere 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 options coincida con el esperado SaveOptions subtipo para el formato elegido. Las load and save options específicas del formato exponen solo las propiedades relevantes para ese formato; no hay una bolsa de options sin tipar en la que adivinar.
Por ejemplo, GltfSaveOptions.binaryMode es un typed boolean, por lo que el compilador rechaza saveOpts.binaryMode = 'yes' antes de que se ejecute cualquier código. Las propiedades de Animation en AnimationClip, los canales de material en PbrMaterial, y los tipos de elementos de vértice en VertexElement están todos tipados de manera similar y son descubribles a través de IntelliSense sin consultar documentación externa.
Código abierto y gratuito
El paquete se publica bajo la Licencia MIT. El código fuente está disponible en GitHub. Las contribuciones, los informes de errores y las solicitudes de soporte de formatos son bienvenidos 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. Todas las demás analizadores y escritores son implementaciones pure-JavaScript auto‑contenidas sin componentes binarios.
Comenzando
- npm:
npm install @aspose/3d - Base de conocimientos: Cómo cargar modelos 3D en TypeScript
- Base de conocimientos: Cómo exportar escenas 3D a glTF/GLB en TypeScript
- Referencia de API: Aspose.3D FOSS para TypeScript: Referencia completa de clases
- GitHub: aspose-3d/aspose-3d-node
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.