Inleiding
We zijn verheugd de beschikbaarheid aan te kondigen van Aspose.3D FOSS voor TypeScript als de @aspose/3d npm‑pakket. Deze MIT-gelicentieerde bibliotheek brengt productie‑kwaliteit 3D‑scèneverwerking naar TypeScript‑ en Node.js‑toepassingen zonder dat native binaries, platformspecifieke toolchains of commerciële licenties nodig zijn.
De bibliotheek is ontworpen rond een eenvoudige Scene API: laad een 3D‑bestand met scene.open(), inspecteer of transformeer de scene‑graph, en schrijf het resultaat met scene.save(). Volledige TypeScript‑type‑definities worden meegeleverd; er is geen apart @types/ pakket vereist.
Belangrijkste kenmerken
Multi‑format I/O. Het pakket leest en schrijft zes belangrijke 3D‑formaten in één installatie. OBJ, glTF 2.0, GLB, STL, 3MF en COLLADA ondersteunen zowel import als export. FBX‑importeur/exporteur‑klassen bestaan, maar automatische formatdetectie is nog niet geïmplementeerd, zodat FBX‑bestanden niet via scene.open().
First‑class TypeScript‑ondersteuning. Alle openbare klassen, enumeraties en optietypen zijn volledig getypeerd. IDE’s met TypeScript‑taaldienstondersteuning (VS Code, WebStorm, enz.) bieden nauwkeurige autocompletion en inline‑documentatie voor elke API‑aanroep.
Node.js 18–22+ compatibiliteit. Het pakket is getest tegen Node.js 18, 20 en 22 LTS‑releases. Er worden geen native add‑ons gecompileerd tijdens de installatie, zodat het op alle platforms werkt die Node.js ondersteunt.
Eén runtime‑afhankelijkheid. De enige afhankelijkheid is xmldom, uitsluitend gebruikt voor het parseren van COLLADA XML. Alle andere formaatparsers zijn pure JavaScript-implementaties.
MIT-licentie. Gebruik @aspose/3d in commerciële, open‑source of interne projecten zonder beperking.
Snelle start
Installeer het pakket:
npm install @aspose/3d
Laad een OBJ‑bestand en converteer het naar een binaire GLB:
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');
Itereer over sceneknooppunten om de geometrie te inspecteren:
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}`);
}
}
Ondersteunde formaten
| Formaat | Extensie | Importeren | Exporteren | Opmerkingen |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Ja | Ja | Leest/schrijft .mtl materiaalbestanden |
| glTF 2.0 | .gltf | Ja | Ja | JSON met externe .bin buffer |
| Binaire GLB | .glb | Ja | Ja | Instellen binaryMode: true in GltfSaveOptions |
| STL | .stl | Ja | Ja | ASCII en binaire STL |
| 3MF | .3mf | Ja | Ja | Open Packaging Convention-archief |
| FBX | .fbx | Nee* | Nee* | Importer/exporter bestaat, maar automatische detectie van het formaat is niet gekoppeld |
| COLLADA | .dae | Ja | Ja | Vereist gebundeld xmldom afhankelijkheid |
Voordelen van TypeScript
Werken met @aspose/3d in TypeScript vangt categoriefouten op tijdens compilatie in plaats van tijdens uitvoering. Wanneer je aanroept scene.save(), de compiler verifieert dat het optiesobject overeenkomt met de verwachte SaveOptions subtype voor het gekozen formaat. Formaat-specifieke laad- en opslagopties tonen alleen de eigenschappen die relevant zijn voor dat formaat; er is geen ongetypeerde optiebag om te raden.
Bijvoorbeeld, GltfSaveOptions.binaryMode is een getypeerde boolean, dus de compiler wijst af saveOpts.binaryMode = 'yes' voordat er code wordt uitgevoerd. Animatie‑eigenschappen op AnimationClip, materiaalkanalen op PbrMaterial, en vertex‑elementtypen op VertexElement zijn allemaal op dezelfde manier getypeerd en via IntelliSense vindbaar zonder externe documentatie te raadplegen.
Open source
Het pakket wordt gepubliceerd onder de MIT-licentie. De broncode is beschikbaar op GitHub. Bijdragen, bugrapporten en verzoeken om formatondersteuning zijn welkom via de issue‑tracker van de repository.
De bibliotheek heeft één runtime‑afhankelijkheid: xmldom versie 0.9+, alleen gebruikt bij het lezen of schrijven van COLLADA‑bestanden. Alle andere parsers en schrijvers zijn zelfstandige pure‑JavaScript‑implementaties zonder binaire componenten.
Aan de slag
- npm:
npm install @aspose/3d - Kennisbank: Hoe 3D‑modellen te laden in TypeScript
- Kennisbank: Hoe 3D‑scènes te exporteren naar glTF/GLB in TypeScript
- API‑referentie: Aspose.3D FOSS voor TypeScript: volledige klassereferentie
- GitHub: aspose-3d/aspose-3d-node
Conclusie
@aspose/3d versie 24.12.0 biedt een stabiele, getypeerde, afhankelijkheidsarme basis voor 3D-bestandsverwerking in TypeScript en Node.js. Of het nu gaat om formaatconversie, scène‑inspectie, geometrie‑extractie of pipeline‑integratie, de bibliotheek dekt de meest voorkomende 3D‑uitwisselingsformaten onder een permissieve open‑source licentie.
Installeer het vandaag nog en laat ons weten wat je bouwt.