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ó per 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.
Funcionalitats clau
E/S multiformat. El paquet llegeix i escriu sis formats 3D principals en una única instal·lació. OBJ és compatible per a importació; glTF 2.0, GLB, STL, 3MF i COLLADA admeten tant importació com 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·leu el paquet:
npm install @aspose/3d
Carregueu un fitxer OBJ i convertiu-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');
Itereu 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
| Format | Extensió | Importa | Exporta | Notes |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Sí | No | Només importa; llegeix .mtl fitxers de material |
| glTF 2.0 | .gltf | Sí | Sí | JSON amb extern .bin buffer |
| GLB binari | .glb | Sí | Sí | Conjunt binaryMode: true a GltfSaveOptions |
| STL | .stl | Sí | Sí | STL ASCII i binari |
| 3MF | .3mf | Sí | Sí | arxiu Open Packaging Convention |
| FBX | .fbx | No* | No* | L’importador/exportador existeix però la detecció automàtica del format no està connectada |
| COLLADA | .dae | Sí | Sí | Requereix empaquetat xmldom dependència |
Avantatges de TypeScript
Treballant amb @aspose/3d a TypeScript captura errors de categoria en temps de compilació en lloc de temps d’execució. Quan crides scene.save(), el compilador verifica que l’objecte d’opcions coincideixi amb el subtipus esperat SaveOptions per al format escollit. 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. Propietats d’animació a AnimationClip, canals de material a PbrMaterial, i tipus d’elements de vèrtex a VertexElement són tots tipats de manera similar i es poden descobrir a través d’IntelliSense sense consultar documentació externa.
Codi obert i gratuït
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 llegir o escriure fitxers COLLADA. Tots els altres analitzadors i generadors són implementacions autònomes de JavaScript pur sense components binaris.
Començar
- npm:
npm install @aspose/3d - Base de coneixement: Com carregar models 3D a TypeScript
- Base de coneixement: Com exportar escenes 3D a glTF/GLB amb TypeScript
- Referència de l’API: Aspose.3D FOSS per a TypeScript: Referència completa de classes
- GitHub: aspose-3d/aspose-3d-node
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ó de 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.