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
| Format | Extension | Importer | Exporter | Notes |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Oui | Non | Importer uniquement; lit .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 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
- 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 pour 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.