Converter STL para GLTF

Aqui você converte STL para GLTF de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído GLTF funciona de um jeito diferente de STL. Não é a degradação gradual de um codec com perda: o que GLTF consegue expressar é reproduzido fielmente, e o que não tem equivalente ali não sobrevive de jeito nenhum.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

Colocar um STL diante de um visitante exige convertê-lo primeiro

Nenhum navegador renderiza STL nativamente nem renderiza glTF nativamente — os dois precisam de um runtime. O que muda é a qualidade do caminho: three.js embarca um leitor de STL, então servir o STL direto parece razoável, e para uma ferramenta interna é uma resposta aceitável.

Deixa de ser razoável quando a página é pública e o modelo é o conteúdo. Um STL é o jeito menos eficiente de mover uma malha por uma conexão que existe, não carrega limites de câmera, e todo triângulo chega com seus próprios três vértices. glTF foi desenhado exatamente para essa transferência.

A solda de vértices é de onde vem o ganho de tamanho

Um STL binário tem exatamente 84 + 50n bytes para n triângulos, independente da forma. Cinquenta desses bytes são doze para uma normal de face, trinta e seis para três vértices completos e dois sem uso. Nada é compartilhado: um cubo são trinta e seis registros de vértice para oito cantos distintos.

A conversão arredonda coordenadas em seis casas decimais para formar uma chave e funde todo canto na mesma posição num único vértice. Numa superfície fechada, cada vértice costuma servir cinco ou seis triângulos, então os dados de vértice caem por aproximadamente esse fator.

O que o glTF contém e como um visualizador o enquadra

Uma cena, um nó, uma malha, uma primitiva em modo triângulo, um acessor de posição float32 VEC3 e um acessor de índice uint32 SCALAR. O buffer é embutido como data URI base64, então o arquivo é autocontido.

O acessor POSITION carrega mínimo e máximo, exigidos pela especificação, e é a diferença prática entre um modelo que aparece e um que não aparece. model-viewer e three.js derivam a distância inicial da câmera desses seis números.

Sombreamento chapado é o visual correto para um STL convertido

Nenhum atributo NORMAL é escrito, e a especificação glTF instrui visualizadores a calcularem normais de face chapadas quando uma malha não tem nenhuma. Num modelo orgânico importado de uma ferramenta de escultura, isso pareceria defeito. Numa peça que saiu de um CAD como STL, é a verdade.

Um STL não tem superfície curva. Tem os triângulos que o exportador produziu na tolerância definida, e uma renderização suave deles seria uma mentira sobre a geometria que uma impressora vai reproduzir de fato.

Milímetros contra metros: a armadilha de escala em STL para glTF

STL não declara unidade, e o mundo da engenharia e da impressão lê seus números como milímetro. glTF 2.0 define sua unidade linear como metro. A conversão copia as coordenadas sem alterar, porque reescalar por um fator que a origem nunca declarou seria um chute.

Então um suporte de 60 mm vira um suporte de 60 metros em termos glTF. Nada parece errado isoladamente — a câmera enquadra pelos limites e o modelo preenche a vista —, mas fica errado assim que ele fica ao lado de outra coisa numa cena. Ajuste uma escala uniforme de 0,001 no nó do seu visualizador.

Um STL, uma malha, uma chamada de desenho, sem material

Como um STL não tem partes, grupos ou objetos, o glTF contém exatamente uma primitiva — o mais barato que existe para renderizar, e significa que um modelo derivado de STL nunca sofre o problema de múltiplas chamadas de desenho que uma exportação CAD com trezentos grupos cria.

Também não tem material, textura, UV nem cor de vértice, porque o STL não tinha nenhum. Seu visualizador aplica o padrão dele, geralmente um cinza médio físico. Atribuir algo melhor no three.js é uma linha, e vale fazer.

O buffer base64 do glTF, e quando pegar o GLB

O .gltf escrito aqui embute o buffer como data URI base64, então não há .bin para servir ao lado nem caminho relativo para quebrar. Base64 custa quatro caracteres por três bytes, então essa conveniência custa cerca de 33% mais bytes.

Para um arquivo que você vai inspecionar ou processar depois, pegue o glTF. Para o arquivo que o visitante de fato baixa, pegue o GLB: mesma geometria, mesmos limites, buffer binário, uma requisição só. Converter um STL para qualquer um dos dois é a mesma operação aqui.

Os dois dialetos de STL convertem, e como são distinguidos

STL binário e ASCII compartilham extensão e o arquivo não diz qual é. O teste comum — checar se o arquivo começa com a palavra "solid" — é pouco confiável, porque o cabeçalho de oitenta bytes de um STL binário pode conter qualquer texto.

O teste confiável é aritmético: um STL binário tem exatamente 84 + 50n bytes para a contagem de triângulos no seu cabeçalho, e é isso que este conversor usa. Se o comprimento não bater, o arquivo é decodificado como texto.

Para onde o STL vai enquanto vira um glTF

Para lugar nenhum. O par roda como JavaScript puro na página — nenhum motor WebAssembly a baixar, nenhuma requisição carregando o modelo, nenhuma fila. Isso importa mais que o normal aqui, porque os STLs que as pessoas convertem para uma prévia web costumam ser a peça de um cliente ou um produto ainda não lançado.

O teto gratuito é 100 MB, o que a cinquenta bytes por triângulo dá um modelo de dois milhões de triângulos. Arquivos desse tamanho valem decimação antes da conversão em vez de depois.

Como converter STL para GLTF

  1. Solte o seu arquivo STL nesta página, ou clique para escolher um.
  2. Escolha GLTF como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo GLTF pronto.

STL ou GLTF: o que muda

STL comparado com GLTF
STLGLTF
Nome completoStereolithographyGL Transmission Format
Extensão do arquivo.stl.gltf
Tipo de mídiamodel/stlmodel/gltf+json
Publicado pela primeira vez19872015
Publicado por3D SystemsKhronos Group
EspecificaçãoglTF 2.0
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorNenhum navegadorNenhum navegador
Considerado no lugar3MF, OBJ, PLYGLB, OBJ

Abrir o resultado

Blender lê tanto STL quanto GLTF, então dá para comparar o resultado com o original sem um segundo programa.

Para que serve cada formato

Os dois miram trabalhos diferentes: STL em a impressão 3D, GLTF em a web e entregar um arquivo pronto. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.

GLTF vem da Khronos Group é de 2015, descrito em glTF 2.0. Blender, three.js e Babylon.js leem o formato.

STL foi publicado em 1987 e GLTF em 2015. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.

De STL para GLTF: perguntas frequentes

Meu arquivo STL é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.

Converter STL para GLTF é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.

Perde qualidade ao converter STL para GLTF?

STL e GLTF descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

Preciso instalar alguma coisa para abrir um arquivo GLTF?

Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe GL Transmission Format.

Mais sobre esses formatos