Introduction

Nous sommes heureux d’annoncer la disponibilité de Aspose.3D FOSS pour TypeScript en tant que @aspose/3d npm package. Cette bibliothèque sous licence MIT apporte un traitement de scènes 3D de qualité production aux applications TypeScript et Node.js sans nécessiter de binaires natifs, de chaînes d’outils spécifiques à la plateforme ou de licences commerciales.

La bibliothèque est conçue autour d’une Scene API : charger un fichier 3D avec scene.open(), inspecter ou transformer le graphe de scène, et écrire le résultat avec scene.save(). Les définitions de types TypeScript complètes sont incluses ; aucun @types/ package séparé n’est requis.

Fonctionnalités clés

Entrées/Sorties multi-format. Le package lit et écrit six formats 3D majeurs en une seule installation. OBJ est pris en charge pour l’import ; glTF 2.0, GLB, STL, 3MF et COLLADA prennent en charge à la fois l’import et l’export. Des classes d’importateur/exportateur FBX existent mais la détection automatique du format n’est pas encore implémentée, de sorte que les fichiers FBX ne peuvent pas être chargés via scene.open().

Support TypeScript de première classe. Toutes les classes publiques, les énumérations et les types d’options sont entièrement typés. Les IDEs disposant du support du service de langage TypeScript (VS Code, WebStorm, etc.) offrent une autocomplétion précise et une documentation en ligne pour chaque appel d’API.

Compatibilité avec Node.js 18–22+. Le paquet est testé avec les versions LTS de Node.js 18, 20 et 22. Aucun module natif n’est compilé lors de l’installation, ce qui le rend compatible avec toutes les plateformes supportées par Node.js.

Une dépendance d’exécution. La seule dépendance est xmldom, utilisé exclusivement pour l’analyse XML COLLADA. Tous les autres analyseurs de formats sont des implémentations JavaScript pures.

Licence MIT. Utilisez @aspose/3d dans des projets commerciaux, open source ou internes sans restriction.

Démarrage rapide

Installez le paquet :

npm install @aspose/3d

Chargez un fichier OBJ et convertissez-le en GLB binaire :

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');

Itérez sur les nœuds de la scène pour inspecter la géométrie :

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

Formats pris en charge

FormatExtensionImporterExporterNotes
Wavefront OBJ.objOuiNonImporter uniquement; lit .mtl fichiers de matériaux
glTF 2.0.gltfOuiOuiJSON avec externe .bin tampon
GLB binaire.glbOuiOuiEnsemble binaryMode: true dans GltfSaveOptions
STL.stlOuiOuiSTL ASCII et binaire
3MF.3mfOuiOuiarchive Open Packaging Convention
FBX.fbxNon*Non*L’importateur/exportateur existe mais la détection automatique du format n’est pas câblée
COLLADA.daeOuiOuiNécessite bundled xmldom dépendance

Avantages de TypeScript

Travailler avec @aspose/3d en TypeScript détecte les erreurs de catégorie à la compilation plutôt qu’à l’exécution. scene.save(),le compilateur vérifie que l’objet options correspond au SaveOptions sous-type pour le format choisi. Les options de chargement et d’enregistrement spécifiques à chaque format exposent uniquement les propriétés pertinentes pour ce format ; il n’existe aucun sac d’options non typé à deviner.

Par exemple, GltfSaveOptions.binaryMode est un(e) typé(e) boolean,ainsi le compilateur rejette saveOpts.binaryMode = 'yes' avant que le code ne s’exécute. AnimationClip,Propriétés d’animation sur PbrMaterial,canaux de matériau sur VertexElement et types d’éléments de sommet sur.

Open source et gratuit

Le paquet est publié sous la Licence MIT. Le code source est disponible sur GitHub. Les contributions, les rapports de bugs et les demandes de prise en charge de formats sont les bienvenus via le système de suivi des problèmes du dépôt.

La bibliothèque possède une dépendance d’exécution : xmldom version 0.9+, utilisée uniquement lors de la lecture ou de l’écriture de fichiers COLLADA. Tous les autres analyseurs et générateurs sont des implémentations autonomes pure-JavaScript sans composants binaires.

Premiers pas

Conclusion

@aspose/3d version 24.12.0 fournit une base stable, typée, légère en dépendances pour le traitement de fichiers 3D en TypeScript et Node.js. Que le cas d’utilisation soit la conversion de formats, l’inspection de scènes, l’extraction de géométrie ou l’intégration de pipelines, la bibliothèque couvre les formats d’échange 3D les plus courants sous une licence open-source permissive.

Installez‑le dès aujourd’hui et dites‑nous ce que vous créez.