Indledning

Vi er glade for at kunne meddele, at der findes en række nye produkter. 3D FOSS til 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 indfødte binære filer, platformspecifikke værktøjskæder eller kommercielle licenser.

Biblioteket er udformet med et enkelt og let at forstå formål. Scene API: indlæse en 3D-fil med scene.open(), inspektere eller omdanne scene grafen, og skrive resultatet med scene.save().Fuld TypeScript-typedefinitioner er bundet sammen; ingen separate @types/ Pakke er påkrævet.

Nøgleegenskaber

Multi-format ind/ud. Pakken læser og skriver seks større 3D-formater i én enkelt installation. OBJ, glTF 2.0, GLB, STL, 3MF og COLLADA understøtter både import og eksport. FBX importer/eksporter klasser findes men format automatisk detektion er endnu ikke trådløst, så FBx filer kan ikke indlæses via scene.open().

Første klasses TypeScript-støtte. Alle offentlige klasser, opgørelser og opsættelsestyper er fuldt ud typede. IDEs med TypeScript-tjenesteunderstøttelse (VS Code, WebStorm osv.) giver nøjagtig autokomplettering og inline dokumentation til hvert API-opkald.

Node.js 18–22+ compatibility. Pakken er testet mod Node.js 18, 20 og 22 LTS-udgaver. Ingen native addons bliver kompileret under installationen, så den fungerer på alle platforme som Node .js støtter.

En runtime afhængighed. Den eneste afhængighed er, at vi ikke kan være enige. xmldom, der udelukkende bruges til COLLADA XML-parsing. Alle andre formatparser er rene JavaScript implementeringer.

MIT-licens. Anvendelse: @aspose/3d i kommercielle, open-source eller interne projekter uden begrænsninger.

Hurtig start

Installer pakken:

npm install @aspose/3d

Lade en OBJ-fil og konvertere den til et binært 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 scenenodes for at kontrollere geometrien:

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øttede formater

Format:UdvidelseImport af varerEksport af varerNoter til dette direktiv:
OBJ.obj- Ja, jeg gør.- Ja, jeg gør.OBJ-bølgefronten; læser/skriver .mtl materialefiler
GFT-værdi.gltf / .glb- Ja, jeg gør.- Ja, jeg gør.glTF 2.0 JSON og GLB binær
STL.stl- Ja, jeg gør.- Ja, jeg gør.ASCII og binær STL
3MF.3mf- Ja, jeg gør.- Ja, jeg gør.Arkiv af Open Packaging Convention
FBX.fbxIkke*Ikke*Import/eksport findes, men formatering automatisk påvisning ikke trådbunden
COLLADA.dae- Ja, jeg gør.- Ja, jeg gør.Krav bundet sammen xmldom afhængighed

Fordelene ved TypeScript

Arbejde med: @aspose/3d TypeScript opfanger kategorifejl i kompilationstid frem for ved runtime. Når du kalder på scene.save(), verificerer kompilatoren, at opsjonsobjektet svarer til det forventede SaveOptions Format-specifik load og save muligheder afslører kun de egenskaber, der er relevante for det pågældende format; der findes ingen utyperede valgmuligheder at gætte på.

For eksempel:, GltfSaveOptions.binaryMode er en indskrevet boolean, så kompileren afviser saveOpts.binaryMode = 'yes' Animationsegenskaber på AnimationClip, materiale kanaler på PbrMaterial, og type vinkelelementer på VertexElement er alle typede på samme måde og kan opdages via IntelliSense uden at konsultere ekstern dokumentation.

Åben kilde

Pakken er offentliggjort under: MIT-licens. Kilden er tilgængelig på GitHub. Bidrag, fejlrapporter og formatstøtteanmodninger er velkomne via repositoriets problemtracker.

Biblioteket har én runtime afhængighed: xmldom (^0.6.0Alle andre parser og writere er selvstændige, ren JavaScript-implementeringer uden binære komponenter.

Hvordan man begynder

Konklusion:

@aspose/3d Version 24.12.0 giver et stabilt, typede og afhængigheds-lygt fundament for 3D filbehandling i TypeScript og Node.js. Uanset om brugsfallet er formatkonvertering, sceneinspektion, geometriekstraktion eller pipelineintegration dækker biblioteket de mest almindelige 3d interchangeformater under en tilladte open source licens.

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