- Projeto que combina impressão 3D e geração procedural para criar uma obra de arte com estrutura complexa
- Composto por um algoritmo de geração de trajetórias que conecta pontos posicionados aleatoriamente com splines e controla inclinação e raio de curva
- Para resolver controle de velocidade e problemas de atrito, garante a estabilidade da pista com raio mínimo de curva e banking excessivo
- Os suportes são gerados com base em um sistema de partículas, considerando ao mesmo tempo forma estética e estabilidade estrutural
- O projeto foi além dos limites do OpenSCAD, com planos futuros de reescrita baseada em SDF e melhoria da modelagem de velocidade
Visão geral do projeto
- Marble Fountain é uma estrutura artística complexa impressa em 3D com técnicas de geração procedural
- Depois de entrar na Formlabs, passou a usar impressoras de alto desempenho, o que levou à tentativa de criar uma grande estrutura algorítmica
- A estrutura foi projetada com o objetivo de ser “a obra de arte mais complexa”
- Na impressão 3D, a complexidade não afeta o custo, e o limite do design é definido pelo tempo gasto no trabalho de CAD
Trilhos (Tracks)
- O sistema inicial foi composto por posicionamento aleatório de pontos → conexão por splines → aplicação de inclinação constante
- A primeira versão apenas subtraía tubos de uma estrutura sólida, mas, para ampliar as funcionalidades, foi adicionado um algoritmo de resolução de trajetórias (path solver)
- O resolvedor de trajetórias começa com uma série de segmentos de reta aleatórios conectando a parte superior e a inferior
- As condições iniciais têm grande influência sobre a forma da estrutura, e várias variações algorítmicas foram testadas
- Os pontos da trajetória seguem as regras abaixo
- permanecer dentro da caixa delimitadora
- manter espaçamento uniforme
- ser puxados para uma altura constante para manter uma inclinação fixa
- respeitar limites mínimo e máximo de raio de curva
- repelir outras pistas e trechos distantes da própria pista
- suavizar mudanças de inclinação e evitar aumento da inclinação
- O problema de controle de velocidade foi mais complexo do que o esperado
- As bolinhas não se movem como massas pontuais, e as mudanças no banking da pista afetam a inércia de rotação e o atrito
- Em trechos retos, a velocidade aumenta em excesso, e em curvas fechadas há risco de parada por desaceleração
- Como solução, foram adotados raio mínimo de curva e banking excessivo para induzir perda de velocidade
- A estrutura de elevação funciona como um fuso de esferas (ball screw)
- As bolinhas restringem o eixo roscado por todos os lados, permitindo rotação sem rolamento superior
- Quando há bolinhas em apenas um lado, ocorre um modo de falha com vibração intensa que faz todas saírem da pista
Suportes (Supports)
- A geração dos suportes foi implementada como um processamento iterativo top-down com base em sistema de partículas
- Mais tempo foi gasto ajustando a forma estética do que lidando com colisões estruturais
- A tolerância da impressora a overhangs foi explorada ativamente
- Regras de comportamento de cada suporte
- atração por outros suportes conforme distância e similaridade de tamanho
- repulsão em relação a outros suportes
- permanência dentro da caixa delimitadora
- manutenção de um certo raio em relação ao centro da estrutura
- Os suportes têm inércia (inertia), o que leva à formação de estruturas curvas em arco
Planos futuros (Looking forward)
- O tempo de exportação do modelo final leva de 5 a 20 minutos
- Há espaço para otimização por causa das limitações do OpenSCAD
- Está sendo considerada uma reescrita baseada em biblioteca SDF
- O sistema atual não possui função de estimativa de velocidade e depende de heurísticas simples
- A medição de velocidade com câmera pode economizar tempo na construção de um modelo de aceleração
- Manter inclinação constante é ruim para evitar colisões, mas essencial para controlar a velocidade
- Há planos para explorar o ponto crítico (response curve) em que a superfície começa a escorregar
Retrospectiva (Looking back)
- Foi o maior projeto pessoal, realizado ao longo de cerca de 7 meses, de fevereiro a setembro de 2024
- Houve uma corrida final para preparar a peça para uma exposição na New Alliance Gallery, em Somerville
- Durante a exposição, eram perdidas de 2 a 3 bolinhas por hora, e o motor superaquecia, permitindo operação por apenas algumas horas
- O projeto foi interrompido por exaustão e divulgado um ano depois
- Há agradecimento ao colega Alex pelos conselhos, feedback e pelos inúmeros testes com bolinhas
Resumo técnico
- Tecnologias usadas: Procedural Generation, 3D Printing, Python, OpenSCAD
- Característica estrutural: algoritmo de resolução de trajetórias + sistema de suportes baseado em partículas
- Objetivo artístico: combinar complexidade mecânica com curvas estéticas
- Não há informações adicionais no texto original
1 comentários
Comentários do Hacker News
A abordagem de usar simulação de partículas para criar uma estrutura de suporte em forma de árvore orgânica é realmente criativa
Pelo que entendi, parece que definiram leis físicas e mapearam o eixo do “tempo” para o eixo z para rodar a simulação
Fico curioso se isso é uma técnica já conhecida ou se foi algo que inventaram por conta própria. De qualquer forma, o resultado tem uma qualidade estética excelente e me deu vontade de experimentar pessoalmente
Quando projetistas de fontes de bolinhas de gude não usam computador, eles frequentemente enfrentam problemas de descarrilamento das bolinhas
Precisam observar quando a bolinha sai do trilho ou trava, deduzir a causa e fazer ajustes manuais
Por isso, é impressionante que nesta obra as bolinhas não saiam do trilho por horas
O trilho é composto por dois rails, então a bolinha está sempre em contato com dois pontos
Parece que o segredo está em manter um banking (inclinação) perfeito para equilibrar gravidade e força centrífuga
O trilho é inclinado de forma bem agressiva para evitar que a bolinha acelere demais ou salte para fora
Assim, todas as bolinhas descem suavemente quase na mesma velocidade
Ainda assim, mais ou menos uma a cada 30 minutos descarrila. Eu gravo vídeos para identificar o trecho problemático e, em vez de ajustar manualmente, melhoro o projeto alterando o código gerador e imprimindo novamente
Também estou pensando em adicionar um loop de feedback com câmera, mas isso já seria outro projeto
Esta obra é realmente linda. Seria incrível se desse para codificar/decodificar áudio usando o trilho
Tipo gerar frequências diferentes com o movimento das bolinhas
Talvez fosse possível com um material mais flexível ou esferas maiores, mas por enquanto foquei em terminar a versão comum
Link do YouTube
Acho que este é um exemplo de caso de uso ideal para impressoras 3D
Fazer de outro jeito um trilho de bolinhas tão suave e com formas tão orgânicas teria exigido um esforço enorme
O vídeo foi muito bem feito. Um simples voice-over sincronizado com a música, e a própria obra explica tudo. Excelente
Gostei demais desta obra. Está cheia de elementos “estranhamente satisfatórios”
Eu também estava usando trilhos de bolinhas para explicar probabilidade aos meus filhos, então ver isso no HN foi quase como se tivessem lido meus pensamentos
O movimento, embora simples, é hipnótico e bonito
Chamas, ondas, correntezas, tela de TV — tudo prende a atenção pelo mesmo motivo
É curioso que este trilho de bolinhas continue prendendo o olhar mesmo sendo, na verdade, um sistema previsível
Eu também gostaria de ver uma versão com LEDs em material branco ou transparente. Ficaria parecendo uma estrada arco-íris
Também estou trabalhando em um projeto parecido
Estou criando um trilho de bolinhas com geração procedural usando Python, Build123D e uma impressora 3D
Fico curioso sobre que tipo de criatividade em escala seria possível se essa técnica se expandisse
Prédios montados em blocos, um mundo real tipo Minecraft
E no filme Fracture também aparece uma ótima máquina de bolinhas
Link do YouTube