Introduktion

Vi er glade for at kunne annoncere tilgængeligheden af Aspose.3D FOSS for TypeScript som den @aspose/3d npm-pakke. Dette MIT-licenserede bibliotek bringer produktionskvalitets 3D-scenebehandling til TypeScript- og Node.js-applikationer uden at kræve native binære filer, platformspecifikke værktøjskæder eller kommercielle licenser.

Biblioteket er designet omkring en enkel Scene API: indlæs en 3D-fil med scene.open(), inspicer eller transformer scene‑grafen, og skriv resultatet med scene.save(). Fuldstændige TypeScript-typedefinitioner er medfølgende; ingen separat @types/ pakke er påkrævet.

Vigtige funktioner

Multi-format I/O. Pakken læser og skriver seks store 3D-formater i en enkelt installation. OBJ, glTF 2.0, GLB, STL, 3MF og COLLADA understøtter både import og eksport. FBX-import-/exportklasser findes, men automatisk formatgenkendelse er endnu ikke implementeret, så FBX-filer kan ikke indlæses via scene.open().

Førsteklasses TypeScript-understøttelse. Alle offentlige klasser, enumerationer og option-typer er fuldt typede. IDE’er med TypeScript-sprogtjenesteunderstøttelse (VS Code, WebStorm osv.) giver præcis autoudfyldning og indlejret dokumentation for hvert API-kald.

Node.js 18–22+ kompatibilitet. Pakken er testet mod Node.js 18, 20 og 22 LTS-udgivelser. Ingen native add-ons kompileres under installationen, så den fungerer på alle platforme, som Node.js understøtter.

Én runtime-afhængighed. Den eneste afhængighed er xmldom, bruges udelukkende til COLLADA XML-parsing. Alle andre formatparsers er rene JavaScript-implementeringer.

MIT-licens. Brug @aspose/3d i kommercielle, open‑source eller interne projekter uden begrænsning.

Hurtig start

Installer pakken:

npm install @aspose/3d

Indlæs en OBJ‑fil og konverter den til en binær 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');

Iterer over scene‑noder for at inspicere geometri:

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

Understøttede formater

FormatFiltypeImportExportNoter
Wavefront OBJ.objJaJaLæser/skriver .mtl materialefiler
glTF 2.0.gltfJaJaJSON med ekstern .bin buffer
Binær GLB.glbJaJaIndstil binaryMode: true i GltfSaveOptions
STL.stlJaJaASCII og binær STL
3MF.3mfJaJaOpen Packaging Convention-arkiv
FBX.fbxNej*Nej*Importer/exporter findes, men automatisk formatgenkendelse er ikke tilsluttet
COLLADA.daeJaJaKræver bundtet xmldom afhængighed

Fordele ved TypeScript

Arbejder med @aspose/3d i TypeScript fanger kategorifejl på kompileringstidspunktet i stedet for ved kørselstid. Når du kalder scene.save(), kompilatoren verificerer, at options object matcher den forventede SaveOptions subtype for det valgte format. Format-specifik load og save options eksponerer kun de egenskaber, der er relevante for det pågældende format; der er ingen untyped options bag at gætte på.

For eksempel, GltfSaveOptions.binaryMode er en typed boolean, så afviser kompilatoren saveOpts.binaryMode = 'yes' før nogen kode kører. Animations‑egenskaber på AnimationClip, materialkanaler på PbrMaterial, og vertex‑elementtyper på VertexElement er alle på samme måde typet og kan findes via IntelliSense uden at konsultere ekstern dokumentation.

Open Source

Pakken er udgivet under MIT-licens. Kildekoden er tilgængelig på GitHub. Bidrag, fejlrapporter og anmodninger om formatunderstøttelse er velkomne via repository’ens issue‑tracker.

Biblioteket har én runtime‑afhængighed: xmldom version 0.9+, kun brugt ved læsning eller skrivning af COLLADA‑filer. Alle andre parser‑ og skriver‑implementeringer er selvstændige ren‑JavaScript‑implementeringer uden binære komponenter.

Kom i gang

Konklusion

@aspose/3d version 24.12.0 leverer et stabilt, typet, afhængighedslet fundament for 3D-filbehandling i TypeScript og Node.js. Uanset om brugsscenariet er formatkonvertering, sceneinspektion, geometriudtræk eller pipeline-integration, dækker biblioteket de mest almindelige 3D-udvekslingsformater under en permissiv open-source-licens.

Installer den i dag, og fortæl os, hvad du bygger.