Introducció

Ens complau anunciar la disponibilitat de Aspose.3D FOSS per TypeScript com a @aspose/3d paquet npm. Aquesta biblioteca amb llicència MIT ofereix processament d’escenes 3D de qualitat de producció a aplicacions TypeScript i Node.js sense requerir binaris natius, cadenes d’eines específiques de plataforma o llicències comercials.

La biblioteca està dissenyada al voltant d’una Scene API: carregar un fitxer 3D amb scene.open(), inspeccionar o transformar el gràfic d’escena i escriure el resultat amb scene.save(). Les definicions de tipus complet de TypeScript s’inclouen; no cal cap @types/ paquet addicional.

Característiques clau

E/S multiformat. El paquet llegeix i escriu sis formats 3D principals en una única instal·lació. OBJ, glTF 2.0, GLB, STL, 3MF i COLLADA admeten tant la importació com l’exportació. Existeixen classes d’importador/exportador FBX, però la detecció automàtica del format encara no està implementada, de manera que els fitxers FBX no es poden carregar via scene.open().

Suport de TypeScript de primera classe. Totes les classes públiques, enumeracions i tipus d’opcions estan completament tipats. Els IDEs amb suport del servei de llenguatge TypeScript (VS Code, WebStorm, etc.) ofereixen autocompleció precisa i documentació en línia per a cada crida a l’API.

Compatibilitat amb Node.js 18–22+. El paquet s’ha provat amb les versions LTS de Node.js 18, 20 i 22. No es compilen complements natius durant la instal·lació, de manera que funciona en totes les plataformes que suporta Node.js.

Una única dependència d’execució. L’única dependència és xmldom, utilitzada exclusivament per a l’anàlisi XML de COLLADA. Tots els altres analitzadors de formats són implementacions purament JavaScript.

Llicència MIT. Utilitza @aspose/3d en projectes comercials, de codi obert o interns sense cap restricció.

Inici ràpid

Instal·la el paquet:

npm install @aspose/3d

Carrega un fitxer OBJ i converteix-lo a un GLB binari:

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');

Itera sobre els nodes de l’escena per inspeccionar la geometria:

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}`);
    }
}

Formats compatibles

FormatExtensióImportaExportaNotes
Wavefront OBJ.objLlegeix/escriu .mtl fitxers de material
glTF 2.0.gltfJSON amb extern .bin buffer
GLB binari.glbConjunt binaryMode: true a GltfSaveOptions
STL.stlASCII i STL binari
3MF.3mfArxiu Open Packaging Convention
FBX.fbxNo*No*Existeixen importador/exportador però la detecció automàtica del format no està connectada
COLLADA.daeRequereix empaquetat xmldom dependència

Avantatges de TypeScript

Treballant amb @aspose/3d a TypeScript captura errors de categoria en temps de compilació en lloc d’execució. Quan crides scene.save(), el compilador verifica que l’objecte d’opcions coincideixi amb el subtipus esperat SaveOptions subtipus per al format triat. Les opcions de càrrega i desament específiques del format exposen només les propietats rellevants per a aquest format; no hi ha cap sac d’opcions sense tipar per endevinar.

Per exemple, GltfSaveOptions.binaryMode és un tipat boolean,de manera que el compilador rebutja saveOpts.binaryMode = 'yes' abans que s’executi cap codi. AnimationClip,Propietats d’animació a PbrMaterial,canals de material a VertexElement i tipus d’elements de vèrtex a.

Codi obert

El paquet es publica sota la Llicència MIT. El codi font està disponible a GitHub. Les contribucions, informes d’errors i sol·licituds de suport de format són benvingudes a través del gestor d’incidències del repositori.

La biblioteca té una dependència d’execució: xmldom versió 0.9+, utilitzada només en la lectura o escriptura de fitxers COLLADA. Tots els altres analitzadors i generadors són implementacions autònomes purament JavaScript sense components binaris.

Com començar

Conclusió

@aspose/3d La versió 24.12.0 ofereix una base estable, tipada i lleugera en dependències per al processament de fitxers 3D en TypeScript i Node.js. Tant si el cas d’ús és la conversió de formats, la inspecció d’escenes, l’extracció de geometria o la integració en pipelines, la biblioteca cobreix els formats d’intercanvi 3D més comuns sota una llicència de codi obert permissiva.

Instal·la-la avui i fes-nos saber què construeixes.