여기서 몇몇이 VR 활용을 말하던데, 예전에 소프트웨어 개발용 얕은 3D UI를 조금 만져본 적이 있음
하루 종일 써도 VAC 눈 피로가 적도록 노트북 화면에서 몇 cm 안쪽 정도의 얕은 깊이였고, 방 안에서 팔을 휘두르는 것보다는 3D에서 색과 레이어를 더해 그리는 느낌에 가까웠음
3D는 흔들림 3D, 웹캠 머리/눈 추적으로 만든 원근, 셔터 안경 스테레오, XR HMD 등으로 가능함. 흔들림 방식은 가장 쉽지만 귀엽고 산만하며, 원근은 더 미묘하고 덜 거슬림
앱의 스테레오 쌍은 “왼쪽/오른쪽 눈 창 두 개를 제공”하거나 “좌우 뷰를 번갈아 표시하고 라벨링/동기화/폴링”하는 식이 될 수 있고, 이 중 상당수는 창 시스템/관리자/데스크톱 지원이 필요함. Electron과 X를 쌓아 쓰는 방식에서 꽤 큰 지렛대를 얻었음
텍스트를 3D로 밀어내는 건 색상화보다 더 재미있고, 어수선한 외형을 감수하면 깊이로 분리된 보조 정보 레이어도 넣을 수 있음. Emacs에 문자별 깊이가 생기면 LispM에도 없던 무언가가 생기는 셈임
다만 코드 텍스트처럼 본질적으로 3D가 아닌 것의 가능성을 탐색할 때는 전경/배경색, 글꼴, 유니코드, 애니메이션으로 UX를 프로토타이핑하는 편이 훨씬 쉽고, 브라우저라면 겹친 div와 투명 2D/3D 캔버스를 쓰면 됨
완전히 동작하는 3D 글리프 기반 텍스트 렌더링 시스템이 있는데, 사람들이 좀 봐주게 만들기가 어렵더라
모든 문자가 3D에 배치된 quad이고 인스턴스 렌더링되므로 수천만 개 이상을 다룰 수 있음. 각 문자는 다른 폴리곤처럼 개별 주소 지정과 변경이 가능함
GitHub 저장소 전체를 한 번에 렌더링하는 데 쓰고 있고, 네이티브 Apple 버전과 웹 버전 두 가지가 있음. 웹 버전에는 IDE 구성의 기본 요소가 들어가 있으며, 통찰이나 생각을 듣고 싶음 https://ivanlugo.dev/ide
이거 마음에 듦. 터미널이 텍스트만 지원해야 할 이유는 없음
데이터 과학 노트북은 터미널이 진화할 수 있는 한 방향을 보여주고, 이 분야에서 재미있는 일이 많이 일어나고 있음. Kitty가 아마 여기서 가장 공격적인 혁신자일 듯함 [1]
다만 전체적인 비전이 있는지는 잘 모르겠음
[1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/
굳이 진화가 필요하지 않음. 내 프로젝트 euporie [1]를 쓰면 데이터 과학 노트북을 그래픽 이미지 출력, HTML, LaTeX 등과 함께 전부 터미널 안에서 사용할 수 있음
[1] https://github.com/joouha/euporie
이 3D 그래픽을 데이터 과학 노트북, 로컬 LLM, 통합 코딩 하네스, 개인 데이터에 대한 가시성과 섞으면 터무니없이 훌륭한 무언가가 나올 수 있음
내가 이상적으로 상상하는 컴퓨팅 미래였던 “haiku+macOS 매시업”을 넘어설지도 모르겠음
이런 게 터미널의 썸네일에도 동작할 수 있을지 궁금함
보통 파일 관리자를 클릭해서 쓰기보다 터미널에서 파일 시스템을 둘러보는 걸 선호하는데, 디렉터리 안의 3D 모델(STL/STEP, 3D 프린팅)을 터미널 기반 렌더링으로 보여주는 격자형 ls가 있으면 정말 유용할 것 같음
모델을 미리 보고 회전해서 살펴볼 수 있으면 가산점임
어디에 쓸지는 잘 모르겠지만, 시각 효과가 즐거웠고 웹사이트의 브루털리즘 디자인도 마음에 들었음. 좋았던 옛날 기억을 떠올리게 해줌
이거 꽤 좋아 보이는데?
질문이 있음. 렌더링 능력상 2D도 잘 처리할 수 있을 것 같은데, 내가 잘못 본 걸까? 터미널에서 고품질 2D 이미지나 래스터화를 얻는 기존 해법은 대체로 별로였음. 이게 다른 해법보다 나을 수 있는지, 아니면 어딘가에서 근본적인 한계에 부딪히는지 궁금함
또 GPU 가속이라면 ssh에서는 어떻게 되는지도 궁금함
Kitty 그래픽 프로토콜은 꽤 좋고, Ghostty가 이를 완전히 구현함
이미 GPU 기반 터미널 에뮬레이터가 꽤 많음. 찾는 게 그런 건가?
터미널이 서서히 풀기능 웹 브라우저가 되어가고 있음
“항상 그랬다” 밈이 곧 나올 듯함. 좀 더 진지하게 말하면 도구의 목적은 일을 해내는 것이고, 결국 이 도구를 유용하게 만들 수 있느냐가 질문이 됨
솔직히 아직은 모르겠지만 곧 직접 알아볼 생각임 :D
좋은 아이디어임. 최근 본 몇몇 터미널 프로젝트와 달리, 터미널이 할 수 있는 일의 개념을 완전히 재발명하지 않고도 문제를 다룸
Kitty 그래픽 프로토콜로 이미 어느 정도 가능함. Kitty에서 3D 그래픽 렌더링을 하는 데모를 만들어봤음 [1]
실제로 빠져 있는 중요한 부분은 vsync이고, ratty에도 없는 것 같음
렌더링이 정렬되지 않으면 애플리케이션이 프레임버퍼에 쓰는 동안 터미널 에뮬레이터가 이를 읽어 시각적 아티팩트가 생길 수 있음
[1] https://x.com/zack_overflow/status/2035921425341763756?s=20
Hacker News 의견들
여기서 몇몇이 VR 활용을 말하던데, 예전에 소프트웨어 개발용 얕은 3D UI를 조금 만져본 적이 있음
하루 종일 써도 VAC 눈 피로가 적도록 노트북 화면에서 몇 cm 안쪽 정도의 얕은 깊이였고, 방 안에서 팔을 휘두르는 것보다는 3D에서 색과 레이어를 더해 그리는 느낌에 가까웠음
3D는 흔들림 3D, 웹캠 머리/눈 추적으로 만든 원근, 셔터 안경 스테레오, XR HMD 등으로 가능함. 흔들림 방식은 가장 쉽지만 귀엽고 산만하며, 원근은 더 미묘하고 덜 거슬림
앱의 스테레오 쌍은 “왼쪽/오른쪽 눈 창 두 개를 제공”하거나 “좌우 뷰를 번갈아 표시하고 라벨링/동기화/폴링”하는 식이 될 수 있고, 이 중 상당수는 창 시스템/관리자/데스크톱 지원이 필요함. Electron과 X를 쌓아 쓰는 방식에서 꽤 큰 지렛대를 얻었음
텍스트를 3D로 밀어내는 건 색상화보다 더 재미있고, 어수선한 외형을 감수하면 깊이로 분리된 보조 정보 레이어도 넣을 수 있음. Emacs에 문자별 깊이가 생기면 LispM에도 없던 무언가가 생기는 셈임
다만 코드 텍스트처럼 본질적으로 3D가 아닌 것의 가능성을 탐색할 때는 전경/배경색, 글꼴, 유니코드, 애니메이션으로 UX를 프로토타이핑하는 편이 훨씬 쉽고, 브라우저라면 겹친 div와 투명 2D/3D 캔버스를 쓰면 됨
모든 문자가 3D에 배치된 quad이고 인스턴스 렌더링되므로 수천만 개 이상을 다룰 수 있음. 각 문자는 다른 폴리곤처럼 개별 주소 지정과 변경이 가능함
GitHub 저장소 전체를 한 번에 렌더링하는 데 쓰고 있고, 네이티브 Apple 버전과 웹 버전 두 가지가 있음. 웹 버전에는 IDE 구성의 기본 요소가 들어가 있으며, 통찰이나 생각을 듣고 싶음
https://ivanlugo.dev/ide
UNIX는 REPL 경험에서 아직도 Xerox 워크스테이션이나 일반적인 Lisp 머신을 따라잡으려는 중으로 보임
1981년에 이미 인라인 그래픽이 있었음
https://youtu.be/o4-YnLpLgtk?t=376
아직 안 본 사람들을 위해: https://www.youtube.com/watch?v=yJDv-zdhzMY
이거 마음에 듦. 터미널이 텍스트만 지원해야 할 이유는 없음
데이터 과학 노트북은 터미널이 진화할 수 있는 한 방향을 보여주고, 이 분야에서 재미있는 일이 많이 일어나고 있음. Kitty가 아마 여기서 가장 공격적인 혁신자일 듯함 [1]
다만 전체적인 비전이 있는지는 잘 모르겠음
[1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/
[1] https://github.com/joouha/euporie
pyvista가 Kitty 그래픽을 이용해 임의의 3D 도형을 터미널에 직접 렌더링하게 만드는 데 성공했음거대한 해킹이고, 성능을 내려면 shm을 쓰는 것 말고는 방법이 없었음
https://git.theresno.cloud/panki/kglobe
내가 이상적으로 상상하는 컴퓨팅 미래였던 “haiku+macOS 매시업”을 넘어설지도 모르겠음
보통 파일 관리자를 클릭해서 쓰기보다 터미널에서 파일 시스템을 둘러보는 걸 선호하는데, 디렉터리 안의 3D 모델(STL/STEP, 3D 프린팅)을 터미널 기반 렌더링으로 보여주는 격자형
ls가 있으면 정말 유용할 것 같음모델을 미리 보고 회전해서 살펴볼 수 있으면 가산점임
어디에 쓸지는 잘 모르겠지만, 시각 효과가 즐거웠고 웹사이트의 브루털리즘 디자인도 마음에 들었음. 좋았던 옛날 기억을 떠올리게 해줌
이거 꽤 좋아 보이는데?
질문이 있음. 렌더링 능력상 2D도 잘 처리할 수 있을 것 같은데, 내가 잘못 본 걸까? 터미널에서 고품질 2D 이미지나 래스터화를 얻는 기존 해법은 대체로 별로였음. 이게 다른 해법보다 나을 수 있는지, 아니면 어딘가에서 근본적인 한계에 부딪히는지 궁금함
또 GPU 가속이라면 ssh에서는 어떻게 되는지도 궁금함
터미널이 서서히 풀기능 웹 브라우저가 되어가고 있음
솔직히 아직은 모르겠지만 곧 직접 알아볼 생각임 :D
https://github.com/fathyb/carbonyl
https://hyper.is/
Terry의 명복을 빎. 결코 잊히지 않기를
덧붙이면, 이 프로젝트를 보면 그의 정신은 계속 살아 있는 듯함 :D
이걸 보니 compiz가 나왔을 때 모두가 “내 창이 큐브 위에 있어”라거나 “흔들리는 창이 필요해”라고 하던 시절이 떠오름
그래서 어쨌든 그런 사람답게 바로 설치했음
온갖 compiz 애니메이션 효과와 함께 Windows와 Ubuntu 사이를 전환하는 게 마법처럼 느껴졌음
링크된 블로그 글에서 새로 제안된 글리프 프로토콜 [1]을 알게 되어 매우 흥미로웠음
약 6개월 전에도 바로 이런 게 없다고 아쉬워했었음 [2]
[1] https://rapha.land/introducing-glyph-protocol-for-terminals/
[2] https://news.ycombinator.com/item?id=45805072
https://github.com/tikimcfee/glyph3d-js
Kitty 그래픽 프로토콜로 이미 어느 정도 가능함. Kitty에서 3D 그래픽 렌더링을 하는 데모를 만들어봤음 [1]
실제로 빠져 있는 중요한 부분은 vsync이고, ratty에도 없는 것 같음
렌더링이 정렬되지 않으면 애플리케이션이 프레임버퍼에 쓰는 동안 터미널 에뮬레이터가 이를 읽어 시각적 아티팩트가 생길 수 있음
[1] https://x.com/zack_overflow/status/2035921425341763756?s=20