Einleitung

Wir freuen uns, die Verfügbarkeit von Aspose.3D FOSS für TypeScript als das @aspose/3d npm-Paket. Diese MIT-lizenzierte Bibliothek bringt 3D‑Szenenverarbeitung in Produktionsqualität zu TypeScript- und Node.js-Anwendungen, ohne native Binärdateien, plattformspezifische Toolchains oder kommerzielle Lizenzen zu benötigen.

Die Bibliothek ist um ein einfaches Scene API: Lade eine 3D-Datei mit scene.open(), inspiziere oder transformiere den Szenengraphen und schreibe das Ergebnis mit scene.save(). Vollständige TypeScript-Typdefinitionen sind enthalten; kein separates @types/ Paket ist erforderlich.

Hauptfunktionen

Multi-Format I/O. Das Paket liest und schreibt sechs wichtige 3D-Formate in einer einzigen Installation. OBJ wird für den Import unterstützt; glTF 2.0, GLB, STL, 3MF und COLLADA unterstützen sowohl Import als auch Export. FBX-Importer/Exporter-Klassen existieren, aber die automatische Format-Erkennung ist noch nicht implementiert, sodass FBX-Dateien nicht über via scene.open().

Erstklassige TypeScript-Unterstützung. Alle öffentlichen Klassen, Aufzählungen und Optionstypen sind vollständig typisiert. IDEs mit TypeScript‑Sprachservice‑Unterstützung (VS Code, WebStorm usw.) bieten genaue Autovervollständigung und Inline‑Dokumentation für jeden API‑Aufruf.

Kompatibilität mit Node.js 18–22+. Das Paket wird gegen die LTS‑Versionen von Node.js 18, 20 und 22 getestet. Es werden während der Installation keine nativen Add‑Ons kompiliert, sodass es auf allen von Node.js unterstützten Plattformen funktioniert.

Eine Laufzeitabhängigkeit. Die einzige Abhängigkeit ist xmldom, die ausschließlich für das Parsen von COLLADA‑XML verwendet wird. Alle anderen Format‑Parser sind reine JavaScript‑Implementierungen.

MIT‑Lizenz. Verwenden @aspose/3d in kommerziellen, Open‑Source‑ oder internen Projekten ohne Einschränkung.

Schnellstart

Installieren Sie das Paket:

npm install @aspose/3d

Laden Sie eine OBJ‑Datei und konvertieren Sie sie in ein binäres 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');

Iterieren Sie über Szenenknoten, um die Geometrie zu untersuchen:

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

Unterstützte Formate

FormatErweiterungImportExportNotizen
Wavefront OBJ.objJaNeinNur importieren; liest .mtl Materialdateien
glTF 2.0.gltfJaJaJSON mit externem .bin Puffer
Binäres GLB.glbJaJaMenge binaryMode: true in GltfSaveOptions
STL.stlJaJaASCII- und Binär-STL
3MF.3mfJaJaOpen Packaging Convention-Archiv
FBX.fbxNein*Nein*Importer/Exporter existieren, aber die automatische Format-Erkennung ist nicht verkabelt
COLLADA.daeJaJaErfordert gebündelt xmldom Abhängigkeit

Vorteile von TypeScript

Arbeiten mit @aspose/3d in TypeScript fängt Kategoriefehler zur Compile‑Zeit statt zur Laufzeit ab. Wenn Sie aufrufen scene.save(), prüft der Compiler, ob das Optionsobjekt dem erwarteten SaveOptions Untertyp für das gewählte Format entspricht. Format‑spezifische Lade‑ und Speicheroptionen stellen nur die für dieses Format relevanten Eigenschaften bereit; es gibt keinen untypisierten Options‑Behälter, über den man raten müsste.

Zum Beispiel, GltfSaveOptions.binaryMode ist ein typisiertes boolean, sodass der Compiler ablehnt saveOpts.binaryMode = 'yes' bevor irgendein Code ausgeführt wird. AnimationClip,Animations‑Eigenschaften auf PbrMaterial, Materialkanäle auf VertexElement , und Vertex‑Element‑Typen auf.

Open Source und kostenlos

Das Paket wird veröffentlicht unter der MIT-Lizenz. Der Quellcode ist auf GitHub verfügbar. Beiträge, Fehlermeldungen und Anfragen für Formatunterstützung sind über den Issue-Tracker des Repositorys willkommen.

Die Bibliothek hat eine Laufzeitabhängigkeit: xmldom Version 0.9+, wird nur beim Lesen oder Schreiben von COLLADA-Dateien verwendet. Alle anderen Parser und Writer sind eigenständige reine JavaScript-Implementierungen ohne binäre Komponenten.

Erste Schritte

Fazit

@aspose/3d version 24.12.0 bietet eine stabile, typisierte, dependency-light Grundlage für die 3D‑Dateiverarbeitung in TypeScript und Node.js. Unabhängig davon, ob der Anwendungsfall Formatkonvertierung, Szeneninspektion, Geometrieextraktion oder Pipeline‑Integration ist, deckt die Bibliothek die gängigsten 3D‑Austauschformate unter einer permissiven Open‑Source‑Lizenz ab.

Installieren Sie es noch heute und lassen Sie uns wissen, was Sie entwickeln.