1 pontos por GN⁺ 3 시간 전 | 2 comentários | Compartilhar no WhatsApp
  • Ratty é um emulador de terminal com renderização por GPU que oferece suporte a gráficos 3D inline
  • Inclui um cursor de rato giratório
  • No site, é possível ler o post do blog
  • No site, é possível acessar Baixar Ratty
  • No site, é possível acessar Ver código-fonte

2 comentários

 
GN⁺ 2 시간 전
Comentários no Hacker News
  • Vi algumas pessoas aqui falando de uso de VR, e eu já brinquei um pouco com uma UI 3D rasa para desenvolvimento de software
    Era uma profundidade rasa de poucos cm para dentro da tela do notebook, para reduzir a fadiga visual por VAC mesmo usando o dia todo, e parecia mais desenhar com cor e camadas em 3D do que ficar balançando os braços pela sala
    O 3D pode ser feito com wobble 3D, perspectiva criada por rastreamento de cabeça/olhos via webcam, estéreo com óculos de obturador, XR HMD etc. O método wobble é o mais fácil, mas é bonitinho e distrativo; a perspectiva é mais sutil e menos incômoda
    O par estéreo de um app pode funcionar como “fornecer duas janelas para o olho esquerdo/direito” ou “alternar a exibição das visões esquerda/direita com rotulagem/sincronização/polling”, e boa parte disso exige suporte do sistema/gerenciador de janelas/desktop. Consegui bastante alavancagem empilhando Electron com X
    Empurrar texto para o 3D é mais divertido do que colorização, e, se você aceitar uma aparência carregada, também dá para incluir camadas auxiliares de informação separadas por profundidade. Se o Emacs ganhasse profundidade por caractere, teria algo que nem a LispM teve
    Mas, ao explorar possibilidades para algo que não é intrinsecamente 3D, como texto de código, é muito mais fácil prototipar a UX com cores de primeiro plano/fundo, fontes, Unicode e animação; no navegador, bastam divs sobrepostas e canvas 2D/3D transparentes

    • Tenho um sistema de renderização de texto baseado em glifos 3D totalmente funcional, mas tem sido difícil fazer as pessoas olharem para ele
      Todo caractere é um quad posicionado em 3D e renderizado por instância, então dá para lidar com dezenas de milhões ou mais. Cada caractere pode ser endereçado e alterado individualmente como se fosse um polígono qualquer
      Estou usando isso para renderizar um repositório inteiro do GitHub de uma vez, e existem duas versões: uma nativa para Apple e outra para a web. A versão web inclui os elementos básicos de uma configuração de IDE, e eu adoraria ouvir ideias ou impressões
      https://ivanlugo.dev/ide
  • O UNIX ainda parece estar tentando alcançar as workstations da Xerox ou uma Lisp machine típica em termos de experiência REPL
    Já havia gráficos inline em 1981
    https://youtu.be/o4-YnLpLgtk?t=376

    • Às vezes parece que continuamos perseguindo uma UX que já tinha sido resolvida na Mother of all Demos de 1968
      Para quem ainda não viu: https://www.youtube.com/watch?v=yJDv-zdhzMY
    • Isso não é 3D
    • Ou então tem o TempleOS
  • Gostei disso. Não há motivo para o terminal só suportar texto
    Notebooks de ciência de dados mostram uma direção possível para a evolução do terminal, e tem acontecido muita coisa interessante nessa área. O Kitty provavelmente é o inovador mais agressivo aqui [1]
    Só não sei se existe uma visão geral por trás disso
    [1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/

    • Nem precisa evoluir. Se você usar meu projeto euporie [1], já dá para usar notebooks de ciência de dados inteiros dentro do terminal, com saída gráfica em imagem, HTML, LaTeX etc.
      [1] https://github.com/joouha/euporie
    • O pyvista conseguiu usar os gráficos do Kitty para renderizar formas 3D arbitrárias diretamente no terminal
      É um hack gigantesco, e não houve jeito de obter desempenho sem usar shm
      https://git.theresno.cloud/panki/kglobe
    • Terry A Davis já tinha feito isso. Era tão maluco naquela época quanto é agora
    • Se misturar esses gráficos 3D com notebooks de ciência de dados, LLMs locais, um harness de codificação integrado e visibilidade sobre dados pessoais, pode sair algo absurdamente incrível
      Talvez até supere o “mashup de haiku+macOS” que eu imaginava como futuro ideal da computação
    • Fico pensando se isso poderia funcionar também para miniaturas no terminal
      Em vez de clicar e usar um gerenciador de arquivos, normalmente prefiro explorar o sistema de arquivos pelo terminal, e seria muito útil ter um ls em grade que mostrasse modelos 3D (STL/STEP, impressão 3D) de um diretório com renderização baseada em terminal
      Pontos extras se desse para pré-visualizar e girar o modelo
  • Não sei bem para que eu usaria isso, mas o efeito visual foi divertido, e também gostei do design brutalista do site. Me trouxe boas lembranças dos velhos tempos

  • Isso parece bem legal, não?
    Tenho uma pergunta. Pela capacidade de renderização, parece que 2D também poderia ser muito bem tratado; será que entendi errado? As soluções existentes para obter imagens 2D de alta qualidade ou rasterização no terminal em geral não são muito boas. Fico curioso se isso poderia ser melhor do que outras soluções, ou se esbarra em alguma limitação fundamental em algum ponto
    Também fico curioso sobre como isso funcionaria por ssh, já que há aceleração por GPU

    • O protocolo gráfico do Kitty é muito bom, e o Ghostty o implementa por completo
    • Já existem vários emuladores de terminal baseados em GPU. É isso que você está procurando?
  • O terminal está lentamente virando um navegador web completo

    • Parece que o meme “sempre foi” vai aparecer já já. Falando mais seriamente, o propósito de uma ferramenta é fazer o trabalho, e no fim a questão é se isso pode tornar a ferramenta útil
      Sinceramente ainda não sei, mas pretendo descobrir por conta própria em breve :D
    • Mas era isso que você queria…
      https://github.com/fathyb/carbonyl
    • Ou então o terminal já pode ser um navegador web completo
      https://hyper.is/
    • Realmente parece isso
  • Descanse em paz, Terry. Que ele nunca seja esquecido
    Dito isso, olhando para este projeto, parece que o espírito dele continua vivo :D

  • Isso me lembra da época em que o compiz saiu e todo mundo dizia coisas como “minhas janelas estão em um cubo” ou “eu preciso de janelas gelatinosas
    Então, sendo esse tipo de pessoa, fui instalar imediatamente de qualquer jeito

    • No KDE Plasma ainda dá para usar isso. Eu deixo as janelas gelatinosas ativadas porque é maneiro
    • Sinto falta daqueles bons tempos. Eu deixava um Windows XP rodando no VirtualBox dedicado a uma face do cubo do compiz
      Alternar entre Windows e Ubuntu com todos aqueles efeitos de animação do compiz parecia mágica
  • No post do blog linkado, descobri o protocolo de glifos [1] recém-proposto e achei muito interessante
    Cerca de 6 meses atrás eu já lamentava a falta de algo exatamente assim [2]
    [1] https://rapha.land/introducing-glyph-protocol-for-terminals/
    [2] https://news.ycombinator.com/item?id=45805072

    • Concordo. Glifos são a chave
      https://github.com/tikimcfee/glyph3d-js
    • É uma boa ideia. Ao contrário de alguns projetos de terminal que vi recentemente, isto aborda o problema sem reinventar completamente a noção do que um terminal pode fazer
  • Em certa medida isso já é possível com o protocolo gráfico do Kitty. Fiz uma demo de renderização de gráficos 3D no Kitty [1]
    Na prática, a parte importante que falta é vsync, e parece que o ratty também não tem isso
    Se a renderização não estiver sincronizada, o emulador de terminal pode ler o framebuffer enquanto a aplicação escreve nele, gerando artefatos visuais
    [1] https://x.com/zack_overflow/status/2035921425341763756?s=20

 
GN⁺ 3 시간 전
Opiniões no Lobste.rs
  • A landing page tinha um cheiro de LLM, então fui conferir o post do blog e, como esperado, era isso mesmo

    🐁: "Quanto a IA esteve envolvida neste trabalho?"

    Para saber minha posição sobre programação assistida por IA, veja este post no blog
    Resumindo, houve envolvimento, mas de forma alguma a ponto de eu considerar que foi algo "feito nas coxas"
    Legal, mas essa resposta não resolve a tendência da IA generativa de plagiar trabalhos existentes sem atribuição nem outras questões éticas

    • Acho que essa tag faz mais sentido para discussões sobre vibe coding do que sobre uso de IA em si
      Se a ideia é colocar tag no uso em si, então teria que colocar em 90% dos projetos, e a conversa acaba saindo do resultado em si. Não quero ver a thread sobre uma pessoa hackeando um emulador de terminal que mostra um rato 3D descambar para um debate ético
    • Você acha mesmo que deveria dar crédito a Terry Davis (Temple OS), Jeff Reeder, Jim Bergman e Mark Hayton (RIPscript) como fonte da ideia?
    • No começo pensei “legal, parece que vai surgir uma concorrência amigável”, mas quanto mais fui me aprofundando, mais o sorriso virou decepção
      Coloquei um pouco de 3D pelo efeito uau rápido, mas acho que o objetivo deveria ser repensar os fundamentos com cuidado. Mesmo que meu experimento fracasse, tenho orgulho de ter criado um produto para humanos, com uma perspectiva humana
      Claro, se eles estão fazendo isso puramente por diversão, então não há problema nisso por si só
    • Fiquei curioso sobre que parte da landing page passou essa sensação de LLM. Para mim, tirando o fundo preto, ela parece quase igual às landing pages que vejo há uns 5–10 anos
  • Mesmo lendo várias vezes, continuo extremamente confuso
    De um lado, assim como quando vejo sixel ou kitty, continuo pensando “por quê?”. Colocar gráficos em uma interface fundamentalmente orientada a texto é interessante, mas não parece prático. Claro, a mesma objeção poderia ser feita a curses ou slang
    Por outro lado, fico me perguntando se daria para enfiar algum tipo de protocolo/display de renderização 3D dentro do Emacs. Não faço ideia do que eu faria com isso, mas parece muito legal, como neste projeto

  • Passei uma tarde/noite fazendo meu framework de CAD em Haskell imprimir objetos de um jeito que o Ratty consegue ler
    Pelo tempo investido, pareceu bem promissor, mas eu gostaria que o comando de “posicionamento de objeto” tivesse um pouco mais de configurabilidade. Esperava que ele mesmo cuidasse de criar espaço dentro da saída do REPL e também do redimensionamento do objeto
    Além disso, é meio ruim que o Ratty não consiga carregar arquivos fora da pasta assets. A rolagem também pareceu meio quebrada; muitas vezes vi os objetos desaparecerem antes da hora. Mas talvez eu tenha feito algo errado