1 điểm bởi GN⁺ 1 giờ trước | 2 bình luận | Chia sẻ qua WhatsApp
  • Ratty là trình giả lập terminal kết xuất bằng GPU hỗ trợ đồ họa 3D nội tuyến
  • con trỏ chuột quay tròn hình chuột
  • Có thể đọc bài viết blog trên trang web
  • Trên trang web có thể chuyển đến tải xuống Ratty
  • Trên trang web có thể chuyển đến xem mã nguồn

2 bình luận

 
Ý kiến trên Hacker News
  • Có người ở đây nhắc đến ứng dụng VR, nên tôi nhớ là trước đây mình từng vọc qua một chút UI 3D nông cho phát triển phần mềm
    Độ sâu chỉ nông vào vài cm tính từ màn hình laptop để có thể dùng cả ngày mà mắt đỡ mỏi do VAC, và cảm giác giống như vẽ thêm màu sắc cùng lớp layer trong không gian 3D hơn là vung tay trong phòng
    Có thể làm 3D bằng parallax 3D, phối cảnh tạo từ webcam theo dõi đầu/mắt, stereo với kính màn trập, XR HMD, v.v. Kiểu parallax là dễ nhất nhưng hơi màu mè và gây xao nhãng, còn phối cảnh thì tinh tế hơn và đỡ phiền hơn
    Cặp stereo của ứng dụng có thể theo kiểu “cung cấp hai cửa sổ mắt trái/mắt phải” hoặc “luân phiên hiển thị khung nhìn trái phải rồi gắn nhãn/đồng bộ/polling”, và khá nhiều cách trong số này cần hỗ trợ từ hệ thống cửa sổ/trình quản lý/môi trường desktop. Tôi đã tận dụng được đòn bẩy khá lớn từ cách xếp chồng Electron và X
    Đẩy văn bản ra thành 3D thú vị hơn việc tô màu, và nếu chấp nhận vẻ ngoài hơi lộn xộn thì còn có thể thêm các lớp thông tin phụ được tách riêng theo chiều sâu. Nếu Emacs có độ sâu cho từng ký tự thì sẽ thành thứ gì đó mà ngay cả LispM cũng chưa từng có
    Tuy vậy, khi khám phá khả năng của những thứ vốn không mang bản chất 3D như văn bản mã nguồn, thì prototype UX bằng màu nền/màu chữ, font, Unicode và animation vẫn dễ hơn nhiều, còn trên trình duyệt thì chỉ cần dùng các div chồng lớp và canvas 2D/3D trong suốt

    • Tôi có một hệ thống render văn bản dựa trên glyph 3D hoạt động hoàn chỉnh, nhưng khó làm cho mọi người chịu xem quá
      Mọi ký tự đều là một quad đặt trong không gian 3D và được render theo kiểu instancing, nên có thể xử lý hàng chục triệu ký tự trở lên. Mỗi ký tự có thể được địa chỉ hóa và chỉnh sửa riêng như một polygon khác biệt
      Tôi đang dùng nó để render toàn bộ một GitHub repository cùng lúc, và có cả bản native cho Apple lẫn bản web. Bản web có các thành phần cơ bản của một cấu hình IDE, nên tôi rất muốn nghe nhận xét hay ý tưởng
      https://ivanlugo.dev/ide
  • UNIX dường như vẫn đang cố bắt kịp máy trạm Xerox hay các Lisp machine nói chung về trải nghiệm REPL
    Năm 1981 đã có đồ họa inline rồi
    https://youtu.be/o4-YnLpLgtk?t=376

    • Đôi khi tôi có cảm giác chúng ta vẫn đang đuổi theo UX mà từ năm 1968 trong Mother of all Demos đã giải quyết xong rồi
      Cho ai chưa xem: https://www.youtube.com/watch?v=yJDv-zdhzMY
    • Cái đó không phải 3D
    • Hoặc cũng có TempleOS
  • Tôi thích cái này. Không có lý do gì terminal chỉ nên hỗ trợ văn bản
    Notebook khoa học dữ liệu cho thấy một hướng mà terminal có thể tiến hóa, và đang có rất nhiều điều thú vị diễn ra trong lĩnh vực này. Kitty có lẽ là kẻ đổi mới táo bạo nhất ở đây [1]
    Nhưng tôi không chắc là đã có một tầm nhìn tổng thể hay chưa
    [1]: https://sw.kovidgoyal.net/kitty/protocol-extensions/

    • Thật ra đâu cần tiến hóa. Với dự án euporie của tôi [1], bạn đã có thể dùng notebook khoa học dữ liệu hoàn toàn trong terminal, cùng với đầu ra ảnh đồ họa, HTML, LaTeX, v.v.
      [1] https://github.com/joouha/euporie
    • pyvista đã thành công trong việc dùng đồ họa Kitty để render trực tiếp các hình 3D tùy ý trong terminal
      Đó là một cú hack rất lớn, và để đạt hiệu năng thì gần như không có cách nào khác ngoài dùng shm
      https://git.theresno.cloud/panki/kglobe
    • Terry A Davis đã làm chuyện này từ trước rồi. Hồi đó nó điên rồ y như bây giờ
    • Nếu trộn đồ họa 3D này với notebook khoa học dữ liệu, LLM cục bộ, bộ harness lập trình tích hợp, và khả năng quan sát dữ liệu cá nhân, thì có thể tạo ra thứ gì đó hay đến mức phi lý
      Có khi còn vượt qua cả “sự pha trộn giữa haiku+macOS” vốn là tương lai máy tính lý tưởng trong tưởng tượng của tôi
    • Tôi tự hỏi liệu thứ này có thể dùng cho thumbnail trong terminal không
      Tôi thường thích duyệt hệ thống file trong terminal hơn là bấm vào file manager, nên một kiểu ls dạng lưới có thể hiển thị model 3D trong thư mục (STL/STEP, in 3D) bằng render ngay trong terminal sẽ thực sự rất hữu ích
      Nếu còn có thể xem trước rồi xoay model để kiểm tra thì càng tốt
  • Tôi không rõ sẽ dùng nó vào việc gì, nhưng hiệu ứng hình ảnh khá vui mắt và tôi cũng thích thiết kế brutalist của trang web. Nó gợi tôi nhớ về những ngày xưa tốt đẹp

  • Cái này trông khá ổn đấy chứ?
    Tôi có một câu hỏi. Về khả năng render thì có vẻ 2D cũng sẽ xử lý tốt, hay là tôi đang hiểu sai? Các giải pháp hiện có để có ảnh 2D chất lượng cao hay rasterization trong terminal nhìn chung đều không mấy ổn. Tôi tò mò không biết cái này có thể tốt hơn các cách khác không, hay rồi sẽ đụng phải một giới hạn nền tảng nào đó
    Tôi cũng tò mò nếu là tăng tốc bằng GPU thì khi dùng qua ssh sẽ ra sao

    • Kitty graphics protocol khá tốt, và Ghostty đã triển khai đầy đủ nó
    • Hiện đã có khá nhiều terminal emulator dựa trên GPU rồi. Có phải bạn đang tìm kiểu đó không?
  • Terminal đang dần dần trở thành trình duyệt web đầy đủ tính năng

    • Sắp có meme “xưa nay vẫn vậy” rồi đấy. Nói nghiêm túc hơn thì mục đích của công cụ là giúp hoàn thành công việc, và câu hỏi cuối cùng là liệu có thể biến công cụ này thành thứ hữu ích hay không
      Thành thật mà nói thì tôi vẫn chưa biết, nhưng định sớm tự thử xem :D
    • Đây chẳng phải đúng thứ bạn muốn sao…
      https://github.com/fathyb/carbonyl
    • Hoặc terminal có lẽ vốn đã là một trình duyệt web đầy đủ tính năng rồi
      https://hyper.is/
    • Thực sự là trông như vậy
  • Mong Terry được an nghỉ. Hy vọng anh ấy sẽ không bao giờ bị lãng quên
    Nói thêm thì nhìn vào dự án này, có cảm giác tinh thần của anh ấy vẫn đang sống tiếp :D

  • Nhìn cái này làm tôi nhớ thời compiz mới ra mắt, khi ai cũng kiểu “cửa sổ của tôi đang nằm trên một khối lập phương” hoặc “tôi cần cửa sổ rung lắc
    Thế là đúng kiểu người như vậy, tôi cài nó ngay lập tức

    • Trên KDE Plasma giờ vẫn dùng được mấy thứ đó. Tôi vẫn bật cửa sổ rung lắc vì nó ngầu
    • Tôi nhớ những ngày tháng đẹp đẽ ấy. Trên một mặt của khối lập phương compiz, tôi dành riêng một Windows XP chạy trong VirtualBox
      Việc chuyển qua lại giữa Windows và Ubuntu cùng đủ loại hiệu ứng animation của compiz cho cảm giác như ma thuật
  • Trong bài blog được link, tôi biết đến glyph protocol mới được đề xuất [1] và thấy nó rất thú vị
    Khoảng 6 tháng trước tôi cũng từng tiếc là chưa có đúng thứ như thế này [2]
    [1] https://rapha.land/introducing-glyph-protocol-for-terminals/
    [2] https://news.ycombinator.com/item?id=45805072

    • Đồng ý. Glyph mới là cốt lõi
      https://github.com/tikimcfee/glyph3d-js
    • Ý tưởng hay đấy. Không giống một số dự án terminal gần đây mà tôi thấy, nó giải quyết vấn đề mà không cần tái phát minh hoàn toàn khái niệm terminal có thể làm gì
  • Về cơ bản thì với Kitty graphics protocol đã làm được phần nào rồi. Tôi từng làm một demo render đồ họa 3D trong Kitty [1]
    Trên thực tế, phần quan trọng còn thiếu là vsync, và có vẻ ratty cũng chưa có
    Nếu việc render không được canh đồng bộ, terminal emulator có thể đọc framebuffer đúng lúc ứng dụng đang ghi vào đó, gây ra các artifact hiển thị
    [1] https://x.com/zack_overflow/status/2035921425341763756?s=20

 
Ý kiến trên Lobste.rs
  • Tôi thấy mùi LLM từ trang landing page nên vào đọc bài blog, và đúng là vậy

    🐁: "AI đã tham gia vào công việc này đến mức nào?"

    Về quan điểm của tôi đối với lập trình có AI hỗ trợ, hãy xem bài blog này
    Nói ngắn gọn là có tham gia, nhưng hoàn toàn không đến mức có thể xem đây là thứ tôi "làm đại cho xong"
    Cũng ổn thôi, nhưng câu trả lời này không giải quyết được xu hướng AI tạo sinh đạo văn công sức sẵn có mà không ghi nguồn, hay các vấn đề đạo đức khác

    • Tôi nghĩ gắn tag này cho thảo luận về vibe coding thì hợp hơn là cho việc có dùng AI hay không
      Nếu gắn tag chỉ vì có dùng AI thì phải gắn cho 90% dự án mất, và cuộc trò chuyện cũng sẽ lệch khỏi chính sản phẩm. Tôi không muốn một thread về chuyện một người tự hack ra terminal emulator hiển thị chuột 3D lại trôi sang tranh luận đạo đức
    • Có phải ý bạn là nên đưa Terry Davis (Temple OS) cùng Jeff Reeder, Jim Bergman, Mark Hayton (RIPscript) vào phần ghi công như nguồn gốc ý tưởng không?
    • Ban đầu tôi nghĩ “hay đấy, có vẻ sắp có cạnh tranh lành mạnh”, nhưng càng đào sâu thì nụ cười càng chuyển thành thất vọng
      Tôi cũng từng thêm một chút 3D để tạo hiệu ứng wow nhanh, nhưng tôi nghĩ mục tiêu nên là cẩn trọng suy nghĩ lại từ nền tảng. Dù thử nghiệm của tôi có thất bại, tôi vẫn tự hào vì đã tạo ra một sản phẩm cho con người, từ góc nhìn mang tính con người
      Tất nhiên, nếu họ chỉ làm hoàn toàn vì vui thì bản thân điều đó cũng không có vấn đề gì
    • Tôi tò mò không biết phần nào của landing page khiến bạn thấy cảm giác LLM. Với tôi thì ngoài nền đen ra, nó trông gần như giống hệt các landing page tôi thấy trong 5~10 năm qua
  • Tôi đọc đi đọc lại mấy lần mà vẫn cực kỳ bối rối
    Một mặt, cũng giống như khi nhìn sixel hay kitty, tôi cứ nghĩ mãi “tại sao?”. Về bản chất, chồng đồ họa lên một giao diện thiên về văn bản thì trông ngầu đấy nhưng có vẻ không thực tế. Dĩ nhiên, cũng có thể đưa ra cùng một phản biện như vậy với curses hay slang
    Mặt khác, tôi lại tự hỏi liệu có cách nào nhét được giao thức/hiển thị render 3D vào trong Emacs hay không. Tôi hoàn toàn không biết sẽ làm gì với nó, nhưng giống như dự án này thì có vẻ sẽ rất ngầu

  • Tôi đã dành cả buổi tối để khiến framework CAD viết bằng Haskell của mình xuất đối tượng theo cách mà Ratty có thể đọc được
    So với thời gian bỏ ra thì nó có vẻ khá nhiều tiềm năng, nhưng tôi ước lệnh “đặt đối tượng” có thể cấu hình thêm một chút. Tôi muốn nó tự lo luôn việc tạo không gian trong output của REPL và cả việc thay đổi kích thước đối tượng
    Ngoài ra, việc Ratty không thể tải tệp nằm ngoài thư mục assets cũng hơi dở. Cuộn trang cũng có vẻ hơi lỗi, vì tôi thường thấy đối tượng biến mất sớm hơn mức lẽ ra nó phải biến mất. Dù vậy cũng có thể là do tôi làm sai gì đó