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

FormaatExtensieImporterenExporterenOpmerkingen
Wavefront OBJ.objJaJaLeest/schrijft .mtl materiaalbestanden
glTF 2.0.gltfJaJaJSON met externe .bin buffer
Binaire GLB.glbJaJaInstellen binaryMode: true in GltfSaveOptions
STL.stlJaJaASCII en binaire STL
3MF.3mfJaJaOpen Packaging Convention-archief
FBX.fbxNee*Nee*Importer/exporter bestaat, maar automatische detectie van het formaat is niet gekoppeld
COLLADA.daeJaJaVereist 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

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.