Introduction
Nous sommes heureux d’annoncer la disponibilité de Aspose.3D FOSS pour TypeScript en tant que @aspose/3d package npm. 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 approche simple 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 n’est requis.
Fonctionnalités clés
Entrée/Sortie multi-format. Le package lit et écrit six formats 3D majeurs en une seule installation. OBJ, glTF 2.0, GLB, STL, 3MF et COLLADA prennent tous en charge l’importation et l’exportation. Des classes d’import/export 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 IDE disposant 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, il fonctionne donc sur toutes les plateformes prises en charge 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
| Format | Extension | Importation | Exportation | Notes |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Oui | Oui | Lecture/écriture .mtl fichiers de matériaux |
| glTF 2.0 | .gltf | Oui | Oui | JSON avec externe .bin tampon |
| GLB binaire | .glb | Oui | Oui | Ensemble binaryMode: true dans GltfSaveOptions |
| STL | .stl | Oui | Oui | STL ASCII et binaire |
| 3MF | .3mf | Oui | Oui | archive Open Packaging Convention |
| FBX | .fbx | Non* | Non* | L’importateur/exportateur existe mais la détection automatique du format n’est pas câblée |
| COLLADA | .dae | Oui | Oui | Nécessite groupé 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. Lorsque vous appelez scene.save(), le compilateur vérifie que l’objet options correspond au sous‑type attendu SaveOptions pour le format choisi. Les options de chargement et d’enregistrement spécifiques à un format n’exposent que les propriétés pertinentes pour ce format ; il n’existe aucun sac d’options non typé à deviner.
Par exemple, GltfSaveOptions.binaryMode est un typé boolean, donc le compilateur rejette saveOpts.binaryMode = 'yes' avant que le code ne s’exécute. Les propriétés d’animation sur AnimationClip, les canaux de matériau sur PbrMaterial, et les types d’éléments de sommet sur VertexElement sont tous typés de manière similaire et découvrables via IntelliSense sans consulter de documentation externe.
Open Source
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 a 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
- npm:
npm install @aspose/3d - Base de connaissances: Comment charger des modèles 3D en TypeScript
- Base de connaissances: Comment exporter des scènes 3D vers glTF/GLB en TypeScript
- Référence API: Aspose.3D FOSS for TypeScript : Référence complète des classes
- GitHub: aspose-3d/aspose-3d-node
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.