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(), inspicér 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.

Nøglefunktioner

Multi-format I/O. Pakken læser og skriver seks store 3D-formater i en enkelt installation. OBJ understøttes til import; glTF 2.0, GLB, STL, 3MF og COLLADA understøtter både import og eksport. FBX‑import‑/export‑klasser 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‑sprogtjeneste (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, brugt 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 konvertér 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');

Iterér over scenenoder 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.objJaNejKun import; læser .mtl materialefiler
glTF 2.0.gltfJaJaJSON med ekstern .bin buffer
Binær GLB.glbJaJaSæt 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

TypeScript‑fordele

Arbejder med @aspose/3d i TypeScript fanger kategorifejl på kompileringstidspunktet i stedet for ved kørretid. Når du kalder scene.save(), kompilatoren verificerer, at options object matcher den forventede SaveOptions subtype for det valgte format. Format-specifik load and 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 typede og kan findes via IntelliSense uden at konsultere ekstern dokumentation.

Open source og gratis

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 pure‑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.