Introduktion

Vi är glada att kunna meddela tillgängligheten av Aspose.3D FOSS för TypeScript som @aspose/3d npm-paket. Detta MIT-licensierade bibliotek ger produktionskvalitativ 3D-scenbearbetning till TypeScript- och Node.js-applikationer utan att kräva inhemska binärer, plattformspecifika verktygskedjor eller kommersiella licenser.

Biblioteket är utformat kring en enkel Scene API: ladda en 3D-fil med scene.open(), inspektera eller transformera scengrafen och skriv resultatet med scene.save(). Fullständiga TypeScript-typsdefinitioner medföljer; inget separat @types/ paket krävs.

Nyckelfunktioner

Multi-format I/O. Paketet läser och skriver sex stora 3D-format i en enda installation. OBJ stöds för import; glTF 2.0, GLB, STL, 3MF och COLLADA stöder både import och export. FBX-import-/exportklasser finns men formatets automatiska identifiering är ännu inte implementerad, så FBX-filer kan inte laddas via scene.open().

Förstklassigt TypeScript-stöd. Alla offentliga klasser, uppräkningar och alternativtyper är fullt typade. IDE:er med stöd för TypeScript-språktjänst (VS Code, WebStorm osv.) erbjuder exakt autokomplettering och inbäddad dokumentation för varje API-anrop.

Node.js 18–22+ kompatibilitet. Paketet testas mot Node.js 18, 20 och 22 LTS-utgåvor. Inga inhemska tillägg kompileras under installationen, så det fungerar på alla plattformar som Node.js stödjer.

Ett runtime‑beroende. Det enda beroendet är xmldom, används uteslutande för COLLADA XML-parsing. Alla andra formatparsers är rena JavaScript-implementationer.

MIT-licens. Använd @aspose/3d i kommersiella, öppen källkod eller interna projekt utan restriktioner.

Snabbstart

Installera paketet:

npm install @aspose/3d

Läs in en OBJ‑fil och konvertera den till 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');

Iterera över scen‑noder för att inspektera 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}`);
    }
}

Stödda format

FormatFiländelseImportExportAnteckningar
Wavefront OBJ.objJaNejEndast import; läser .mtl materialfiler
glTF 2.0.gltfJaJaJSON med externa .bin buffert
Binär GLB.glbJaJaStäll in binaryMode: true i GltfSaveOptions
STL.stlJaJaASCII och binär STL
3MF.3mfJaJaOpen Packaging Convention-arkiv
FBX.fbxNej*Nej*Importör/exportör finns men automatisk formatdetektering är inte kopplad
COLLADA.daeJaJaKräver inbäddad xmldom beroende

Fördelar med TypeScript

Arbetar med @aspose/3d i TypeScript fångar kategorifel vid kompileringstid snarare än vid körning. När du anropar scene.save(), kompilatorn verifierar att options object matchar den förväntade SaveOptions subtype för det valda formatet. Format‑specifika load and save options exponerar endast de egenskaper som är relevanta för det formatet; det finns ingen otypad options bag att gissa på.

Till exempel, GltfSaveOptions.binaryMode är en typad boolean, så förkastar kompilatorn saveOpts.binaryMode = 'yes' innan någon kod körs. Animationsegenskaper på AnimationClip, materialkanaler på PbrMaterial, och vertex-elementtyper på VertexElement är alla likadant typade och kan upptäckas via IntelliSense utan att konsultera extern dokumentation.

Öppen källkod och gratis

Paketet publiceras under MIT-licensen. Källkoden finns tillgänglig på GitHub. Bidrag, felrapporter och förfrågningar om formatstöd är välkomna via repositoryns ärendehanterare.

Biblioteket har ett runtime‑beroende: xmldom version 0.9+, används endast vid läsning eller skrivning av COLLADA‑filer. Alla andra parser‑ och skrivare är självständiga ren‑JavaScript‑implementationer utan binära komponenter.

Komma igång

Slutsats

@aspose/3d version 24.12.0 tillhandahåller en stabil, typad, beroende‑lätt grund för 3D‑filbehandling i TypeScript och Node.js. Oavsett om användningsfallet är formatkonvertering, sceninspektion, geometriextraktion eller pipeline‑integration, täcker biblioteket de vanligaste 3D‑utbytesformaten under en permissiv öppen källkodslicens.

Installera det idag och låt oss veta vad du bygger.