Introdução

Estamos lançando Aspose.3D FOSS para Python, uma biblioteca pure-Python para leitura, escrita e conversão de formatos de arquivo 3D comuns. A biblioteca é publicada no PyPI como aspose-3d-foss, possui licença MIT e não tem dependências externas.

Se você já precisou inspecionar ou converter arquivos 3D programaticamente (extrair contagens de vértices de malha, canalizar geometria OBJ para um script de processamento ou converter em lote arquivos STL para glTF para um visualizador web), esta biblioteca foi criada para esse caso de uso. Ela não requer driver gráfico, módulo de extensão nativo ou qualquer conexão com a nuvem.


O que está incluído

Grafo de Cena Principal

Cada arquivo é carregado em um Scene objeto que espelha a hierarquia de nós do arquivo original. Nós carregam Transform (translação, rotação, escala) e uma ou mais entidades anexadas, como Mesh, Camera, ou Light. O grafo de cena é o mesmo independentemente do formato de origem, portanto o código escrito para percorrer e processar a geometria funciona em todos os formatos suportados sem modificação.

Acesso à Geometria

Mesh objetos expõem:

  • control_points: lista de posições de vértices como Vector4 (x, y, z, w)
  • polygons: lista de listas de índices de faces (polígonos de aridade arbitrária, não apenas triângulos)
  • get_element(VertexElementType): recupera camadas de dados de vértices nomeadas para normais, UVs, cores de vértice e grupos de suavização

Materiais

LambertMaterial e PhongMaterial carregam as propriedades de material lidas do OBJ .mtl arquivos (ambient, diffuse, specular, emissive, transparency, shininess). Os materiais sobrevivem à ida e volta de carregamento‑salvamento para formatos que os suportam.

Utilitários Matemáticos

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, e BoundingBox são incluídos como tipos de valor leves para cálculos de geometria.

Animação

O AnimationClip, AnimationNode, KeyframeSequence, e KeyFrame classes fornecem acesso a dados de animação por quadros‑chave de formatos que os contêm, como glTF e COLLADA.


Início Rápido

pip install aspose-3d-foss

Carregue um arquivo 3D e imprima a contagem de vértices de cada malha:

from aspose.threed import Scene
from aspose.threed.entities import Mesh

scene = Scene.from_file("model.obj")

def visit(node):
    for entity in node.entities:
        if isinstance(entity, Mesh):
            print(f"{node.name}: {len(entity.control_points)} vertices, "
                  f"{len(entity.polygons)} polygons")
    for child in node.child_nodes:
        visit(child)

visit(scene.root_node)

Converta o mesmo arquivo para glTF:

from aspose.threed import Scene
from aspose.threed.formats import GltfSaveOptions

scene = Scene.from_file("model.obj")
scene.save("model.gltf", GltfSaveOptions())

Esse é o programa completo. Sem arquivos de configuração, sem chaves de API, sem chamadas de rede.


Formatos Suportados

FormatoExtension(s)CarregarSalvarNotas
Wavefront OBJ.objSimSim.mtl carregamento de material suportado
STL.stlSimSimBinário e ASCII; opção de inversão do sistema de coordenadas
glTF 2.0.gltf, .glbSimSimGLB (binário autônomo) suportado
COLLADA.daeSimSimColladaSaveOptions disponível com flip_coordinate_system, enable_materials, indented
3MF.3mfSimSimAdequado para fluxos de trabalho de impressão 3D
FBX.fbxParcialN/AApenas tokenizador; parser completo em desenvolvimento

A detecção de formato é automática a partir da extensão do arquivo. Opções específicas de carregamento e salvamento de formato (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions).


Código Aberto e Gratuito

A biblioteca tem licença MIT. Você pode usá‑la em aplicações comerciais, modificá‑la e redistribuí‑la sem restrições. O código fonte está disponível no GitHub sob a organização Aspose.

Não há níveis de uso, limites de tokens ou telemetria. A biblioteca realiza todo o processamento localmente.

Dependências: nenhum. O pacote é instalado como um wheel puro-Python sem extensões C e sem dependências de tempo de execução de terceiros.


Começando


Conclusão

Aspose.3D FOSS for Python 26.1.0 cobre os formatos de arquivo 3D mais comuns usados em ferramentas, pipelines e aplicações web (OBJ, STL, glTF, COLLADA e 3MF) com uma API Python consistente e sem atritos de instalação. Se você encontrar um bug, um caso de borda não suportado ou um formato que precise ser adicionado, por favor abra uma issue no GitHub. Mantemos a biblioteca ativamente e recebemos contribuições.