Introdução
Temos o prazer de anunciar a disponibilidade de Aspose.3D FOSS para TypeScript como o @aspose/3d pacote npm. Esta biblioteca licenciada sob MIT traz processamento de cenas 3D de qualidade de produção para aplicações TypeScript e Node.js sem exigir binários nativos, toolchains específicos de plataforma ou licenças comerciais.
A biblioteca foi projetada em torno de uma Scene API: carregue um arquivo 3D com scene.open(), inspecione ou transforme o grafo da cena e escreva o resultado com scene.save(). Definições de tipos completas para TypeScript são incluídas; nenhum @types/ pacote adicional é necessário.
Recursos Principais
E/S multi-formato. O pacote lê e grava seis principais formatos 3D em uma única instalação. OBJ, glTF 2.0, GLB, STL, 3MF e COLLADA suportam tanto importação quanto exportação. Classes de importação/exportação FBX existem, mas a detecção automática de formato ainda não está implementada, portanto arquivos FBX não podem ser carregados via scene.open().
Suporte de primeira classe ao TypeScript. Todas as classes públicas, enumerações e tipos de opções são totalmente tipados. IDEs com suporte ao serviço de linguagem TypeScript (VS Code, WebStorm, etc.) fornecem autocompletação precisa e documentação inline para cada chamada de API.
Compatibilidade com Node.js 18–22+. O pacote é testado nas versões LTS do Node.js 18, 20 e 22. Nenhum addon nativo é compilado durante a instalação, portanto funciona em todas as plataformas suportadas pelo Node.js.
Uma dependência em tempo de execução. A única dependência é xmldom, usado exclusivamente para análise de XML COLLADA. Todos os demais analisadores de formato são implementações puras em JavaScript.
Licença MIT. Use @aspose/3d em projetos comerciais, de código aberto ou internos sem restrição.
Início Rápido
Instale o pacote:
npm install @aspose/3d
Carregue um arquivo OBJ e converta-o para um GLB binário:
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');
Itere sobre os nós da cena para inspecionar a geometria:
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}`);
}
}
Formatos Compatíveis
| Formato | Extensão | Importar | Exportar | Notas |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Sim | Sim | Lê/escreve .mtl arquivos de material |
| glTF 2.0 | .gltf | Sim | Sim | JSON com externo .bin buffer |
| GLB binário | .glb | Sim | Sim | Conjunto binaryMode: true em GltfSaveOptions |
| STL | .stl | Sim | Sim | STL ASCII e binário |
| 3MF | .3mf | Sim | Sim | arquivo Open Packaging Convention |
| FBX | .fbx | Não* | Não* | Importador/exportador existe, mas a detecção automática de formato não está conectada |
| COLLADA | .dae | Sim | Sim | Requer empacotado xmldom dependência |
Vantagens do TypeScript
Trabalhando com @aspose/3d em TypeScript captura erros de categoria em tempo de compilação em vez de em tempo de execução. Quando você chama scene.save(), o compilador verifica se o objeto de opções corresponde ao esperado SaveOptions subtipo para o formato escolhido. As opções de carregamento e salvamento específicas de cada formato expõem apenas as propriedades relevantes para esse formato; não há um conjunto de opções não tipado para adivinhar.
Por exemplo, GltfSaveOptions.binaryMode é um tipado boolean, então o compilador rejeita saveOpts.binaryMode = 'yes' antes que qualquer código seja executado. Propriedades de animação em AnimationClip, canais de material em PbrMaterial, e tipos de elementos de vértice em VertexElement são todos tipados de forma semelhante e descobríveis através do IntelliSense sem consultar documentação externa.
Código Aberto
O pacote é publicado sob a Licença MIT. O código-fonte está disponível no GitHub. Contribuições, relatórios de bugs e solicitações de suporte a formatos são bem-vindas através do rastreador de issues do repositório.
A biblioteca tem uma dependência em tempo de execução: xmldom versão 0.9+, usada apenas ao ler ou escrever arquivos COLLADA. Todos os demais analisadores e gravadores são implementações autônomas pure-JavaScript sem componentes binários.
Começando
- npm:
npm install @aspose/3d - Base de Conhecimento: Como Carregar Modelos 3D em TypeScript
- Base de Conhecimento: Como Exportar Cenas 3D para glTF/GLB em TypeScript
- Referência da API: Aspose.3D FOSS para TypeScript: Referência Completa de Classes
- GitHub: aspose-3d/aspose-3d-node
Conclusão
@aspose/3d A versão 24.12.0 fornece uma base estável, tipada e leve em dependências para o processamento de arquivos 3D em TypeScript e Node.js. Seja o caso de uso conversão de formato, inspeção de cena, extração de geometria ou integração de pipeline, a biblioteca cobre os formatos de intercâmbio 3D mais comuns sob uma licença open-source permissiva.
Instale hoje e nos conte o que você está construindo.