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

FormatoExtensãoImportarExportarNotas
Wavefront OBJ.objSimSimLê/escreve .mtl arquivos de material
glTF 2.0.gltfSimSimJSON com externo .bin buffer
GLB binário.glbSimSimConjunto binaryMode: true em GltfSaveOptions
STL.stlSimSimSTL ASCII e binário
3MF.3mfSimSimarquivo Open Packaging Convention
FBX.fbxNão*Não*Importador/exportador existe, mas a detecção automática de formato não está conectada
COLLADA.daeSimSimRequer 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

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.