Introduzione
Siamo lieti di annunciare la disponibilità di Aspose.3D FOSS per TypeScript come il @aspose/3d pacchetto npm. Questa libreria con licenza MIT offre elaborazione di scene 3D di qualità produzione per applicazioni TypeScript e Node.js senza richiedere binari nativi, toolchain specifici per piattaforma o licenze commerciali.
La libreria è progettata attorno a un’interfaccia semplice Scene API: carica un file 3D con scene.open(), ispeziona o trasforma il grafo della scena e scrivi il risultato con scene.save(). Le definizioni di tipo complete per TypeScript sono incluse; non è necessario alcun @types/ pacchetto aggiuntivo.
Caratteristiche principali
I/O multiformato. Il pacchetto legge e scrive sei principali formati 3D in un’unica installazione. OBJ è supportato per l’importazione; glTF 2.0, GLB, STL, 3MF e COLLADA supportano sia l’importazione che l’esportazione. Esistono classi di import/export FBX ma il rilevamento automatico del formato non è ancora implementato, quindi i file FBX non possono essere caricati tramite scene.open().
Supporto TypeScript di prima classe. Tutte le classi pubbliche, le enumerazioni e i tipi di opzione sono completamente tipizzati. Gli IDE con supporto al servizio linguistico TypeScript (VS Code, WebStorm, ecc.) forniscono completamento automatico accurato e documentazione in linea per ogni chiamata API.
Compatibilità con Node.js 18–22+. Il pacchetto è testato con le versioni LTS di Node.js 18, 20 e 22. Nessun addon nativo viene compilato durante l’installazione, quindi funziona su tutte le piattaforme supportate da Node.js.
Una dipendenza a runtime. L’unica dipendenza è xmldom, usato esclusivamente per l’analisi XML di COLLADA. Tutti gli altri parser di formato sono implementazioni pure in JavaScript.
Licenza MIT. Usa @aspose/3d in progetti commerciali, open-source o interni senza restrizioni.
Avvio rapido
Installa il pacchetto:
npm install @aspose/3d
Carica un file OBJ e convertilo in 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');
Itera sui nodi della scena per ispezionare 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}`);
}
}
Formati supportati
| Formato | Estensione | Importa | Esporta | Note |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Sì | No | Solo importazione; legge .mtl file dei materiali |
| glTF 2.0 | .gltf | Sì | Sì | JSON con esterno .bin buffer |
| GLB binario | .glb | Sì | Sì | Imposta binaryMode: true in GltfSaveOptions |
| STL | .stl | Sì | Sì | STL ASCII e binario |
| 3MF | .3mf | Sì | Sì | archivio Open Packaging Convention |
| FBX | .fbx | No* | No* | Importer/exporter esistono ma il rilevamento automatico del formato non è collegato |
| COLLADA | .dae | Sì | Sì | Richiede bundled xmldom dipendenza |
Vantaggi di TypeScript
Lavorare con @aspose/3d in TypeScript rileva gli errori di categoria al momento della compilazione piuttosto che a runtime. Quando chiami scene.save(), il compilatore verifica che l’oggetto options corrisponda al tipo previsto SaveOptions sottotipo per il formato scelto. Le opzioni di caricamento e salvataggio specifiche del formato espongono solo le proprietà rilevanti per quel formato; non esiste un contenitore di opzioni non tipizzate da indovinare.
Ad esempio, GltfSaveOptions.binaryMode è un typed boolean, quindi il compilatore rifiuta saveOpts.binaryMode = 'yes' prima che venga eseguito alcun codice. Proprietà di animazione su AnimationClip, canali di materiale su PbrMaterial, e tipi di elementi vertice su VertexElement sono tutti tipizzati in modo simile e scopriibili tramite IntelliSense senza consultare documentazione esterna.
Open source e gratuito
Il pacchetto è pubblicato sotto la MIT License. Il codice sorgente è disponibile su GitHub. Contributi, segnalazioni di bug e richieste di supporto per formati sono benvenuti tramite il tracker delle issue del repository.
La libreria ha una dipendenza runtime: xmldom versione 0.9+, usata solo durante la lettura o scrittura di file COLLADA. Tutti gli altri parser e writer sono implementazioni pure-JavaScript autonome senza componenti binari.
Iniziare
- npm:
npm install @aspose/3d - Base di conoscenza: Come caricare modelli 3D in TypeScript
- Base di conoscenza: Come esportare scene 3D in glTF/GLB in TypeScript
- Riferimento API: Aspose.3D FOSS per TypeScript: Riferimento completo delle classi
- GitHub: aspose-3d/aspose-3d-node
Conclusione
@aspose/3d la versione 24.12.0 fornisce una base stabile, tipizzata, leggera in dipendenze per l’elaborazione di file 3D in TypeScript e Node.js. Che il caso d’uso sia la conversione di formati, l’ispezione della scena, l’estrazione di geometria o l’integrazione in pipeline, la libreria copre i formati di interscambio 3D più comuni sotto una licenza open-source permissiva.
Installa oggi e facci sapere cosa costruisci.