1 điểm bởi GN⁺ 2026-03-06 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ trên canvas 128×128 pixel nơi mỗi cọ vẽ hoạt động như một chương trình độc lập để tạo ra màu sắc và hoa văn
  • Cọ vẽ thực hiện nhiều hành vi khác nhau như pha trộn, khuếch tán, nhỏ giọt, phát triển, glitch, và tất cả đều có thể được người dùng tự chỉnh sửa
  • Mỗi ô trên canvas được cấu thành như một đơn vị dữ liệu, tạo nên cấu trúc nơi màu sắc tích lũy và các hoa văn bất ngờ hình thành
  • Cung cấp hơn 50 cọ mặc định, và có thể sửa mã để thay đổi cách khuếch tán hoặc phản ứng màu sắc
  • Hình ảnh hoàn thiện có thể được lưu và chia sẻ, đồng thời người dùng khác có thể làm lại với cùng cọ và bảng màu

Tổng quan về MOSS

  • MOSS là một công cụ vẽ dựa trên pixel, trong đó mỗi cọ hoạt động như một chương trình nhỏ
    • Thay vì tô màu bằng cọ, người dùng có thể định nghĩa hành vi của cọ bằng mã
    • Cọ thao tác dữ liệu của canvas và từ đó tạo ra những hoa văn thị giác khó dự đoán

Đặc tính và cách hoạt động của cọ

  • Cọ hoạt động theo nhiều cách như blend, spread, drip, grow, glitch
    • Mỗi cọ có cơ chế hoạt động riêng, và người dùng có thể tự sửa mã để thay đổi hành vi
    • Ví dụ, có thể điều chỉnh cách cọ làm lan màu hoặc phản ứng với màu sắc

Cấu trúc canvas và biểu đạt

  • Canvas của MOSS gồm 128×128 pixel, và mỗi pixel được xem như một ô dữ liệu
    • Khi cọ thao tác dữ liệu của các ô, màu sắc sẽ tích lũy và tạo ra những hoa văn tự nhiên cùng hiệu ứng ngẫu nhiên
    • Trong quá trình đó, các kết quả thị giác ngoài dự đoán sẽ xuất hiện

Cọ mặc định và khả năng tùy chỉnh của người dùng

  • MOSS cung cấp hơn 50 cọ mặc định
    • Bao gồm nhiều dạng từ hiệu ứng sơn hay mực đơn giản đến vine growth, wet drips, generative plaid
    • Người dùng có thể tự do chỉnh sửa cách khuếch tán, màu còn lưu lại, phản ứng màu sắc của cọ

Tính năng lưu và chia sẻ

  • Hình ảnh hoàn thiện có thể được lưu lại rồi chia sẻ với người dùng khác
    • Người nhận chia sẻ có thể làm lại trong cùng môi trường bằng chính cọ và bảng màu đó
    • Trên trang web có giới thiệu nhiều tác phẩm mẫu do người dùng tạo ra

1 bình luận

 
GN⁺ 2026-03-06
Ý kiến trên Hacker News
  • Cảm ơn vì đã chia sẻ. Tôi rất thích Aseprite, Procreate, Pico8, và từ lâu đã luôn ấp ủ ý tưởng về cọ có thể lập trình trong đầu
    Gần đây tranh thủ thời gian giữa các dự án, tôi đã tự làm ra một món đồ chơi vẽ tên là MOSS. Mỗi cây cọ là một script nhỏ có thể nhận biết mọi pixel trên canvas, và định nghĩa cách vẽ bằng nhiễu, hoa văn, áp lực, tốc độ, v.v.
    Ví dụ, có thể tạo cọ phun rải pixel như bình xịt thật, cọ dạng con dấu thay đổi hình khi kéo, cọ mà các đường phối cảnh thực sự hội tụ, hoặc cả công cụ tô thông minh (“Fill of my Dreams”)
    Tôi muốn chia sẻ mã cọ trong phần bình luận hoặc cùng nhau khám phá ý tưởng. Có tài liệu API ở nút (?) góc dưới bên phải, và phía dưới có tính năng sao chép prompt để thao tác API thông qua agent

    • Khoảng 10 năm trước tôi cũng từng làm một chương trình cọ có thể lập trình. Không giống MOSS, nó dựa trên mô phỏng vật lý thay vì shader, nhưng tôi nghĩ cách tiếp cận này có tiềm năng rất lớn
      Cảm giác vẽ chim chỉ bằng một nét bút thật sự rất đáng kinh ngạc
      Tôi chia sẻ link dự án của mình vì nghĩ có thể truyền cảm hứng — Wind by Laura
    • Rất vui và đầy cá tính. Có thể cảm nhận rõ cảm hứng từ Pico8Aseprite
      Cọ sinh tạo theo thủ tục cũng có vẻ thú vị — ví dụ như một cây cọ tạo ra cảnh quan đô thị ngẫu nhiên ngay trong lúc vẽ
      Với kiểu ý tưởng này, có lẽ cũng có thể tận dụng kỹ thuật Wave Function Collapse
    • Tôi rất thích cảm giác pixel hóa này. Đây là lần đầu tôi thấy cọ có thể lập trình lúc chạy hoạt động theo thời gian thực
      Tôi tò mò không biết bạn có thể chia sẻ vài đoạn mã cọ thú vị chưa có trong ứng dụng không
    • Thật sự rất tuyệt. Tôi ấn tượng vì nó nhận được độ nhạy lực nhấn của tablet Wacom và phản hồi theo đó. Trong số các công cụ web thì nổi bật hẳn
    • Không biết dự án này có mã nguồn mở không, và có kho GitHub hay không
  • Dự án này thật sự rất tuyệt. Tôi nghĩ một người sáng tạo hơn tôi có thể dùng nó cho một mục đích hoàn toàn khác
    Trước đây tôi từng xem một video về ai đó làm một ứng dụng vẽ đơn giản bằng cách dùng định dạng phụ đề YouTube
    Nếu mã cọ của MOSS có thể đọc trạng thái canvas và vẽ lên đó, thì ngược lại liệu có thể tạo một cây cọ render video hoặc trò chơi đơn giản trong lúc giữ chuột xuống không, ví dụ như Tic-Tac-Toe?
    Dĩ nhiên đó không phải mục đích ban đầu, nhưng có vẻ sẽ là một thử thách thú vị

    • Bạn có biết link kênh YouTube đó không? Tìm với từ khóa “SWEet” thì không ra
  • Thật đáng kinh ngạc. Có thể thêm tính năng vẽ đường thẳng bằng cách giữ phím Shift không? Kiểu như MSPaint ấy

    • Ý hay nên tôi đã thêm ngay. Nếu giữ Shift trước hoặc trong khi vẽ đường, một đường xem trước sẽ hiện ra và được áp dụng khi bạn thả chuột
  • Dự án này làm tôi nhớ đến một thử nghiệm định dạng tệp ảnh siêu nhỏ mà trước đây tôi từng làm
    Tôi có tổng hợp lại trong một bài trên Medium

  • Tôi rất thích nó. Đặc biệt sẽ hay hơn nữa nếu có các tính năng như sau

    • Ghi lại timelapse quá trình vẽ
    • Hiển thị danh sách cọ đã dùng trong bức vẽ
      Xa hơn nữa, nếu có thể ghi lại các nét cọ rồi sửa mã cọ sau này và phát lại thì sẽ thực sự rất thú vị
  • Tôi vừa thử nhưng không vẽ được gì cả. Vẫn chọn được cọ và màu, nhưng canvas không phản hồi gì
    Tôi thử trên Chrome của MacOS

  • Thật sự xuất sắc. Bút stylus của Surface Pro của tôi hoạt động tốt, thậm chí còn nhận cả dữ liệu lực nhấn. Lại còn ngay trong trình duyệt!

  • Ý tưởng rất hay. Nó giống như phiên bản vẽ của Shadertoylink Shadertoy
    Tôi tò mò không biết trong app có tính năng chia sẻ cọ hoặc kiểu thư viện cọ nào không
    Việc chia sẻ tác phẩm theo chủ đề như mục “weekly” trên trang chủ rất vui, nhưng những người không giỏi vẽ có thể chỉ muốn chia sẻ riêng cọ thôi

    • Tôi đang dần mở rộng tính năng chia sẻ. Tôi muốn tạo ra một cộng đồng nơi nghệ sĩ làm cọ và nghệ sĩ pixel có thể cộng tác hoặc chia sẻ đồ chơi với nhau
      Hiện tại tôi đang lưu cọ của mình thành các tệp .txt nhỏ
      Ngoài ra, các tệp png được lưu từ MOSS có mã hóa kèm dữ liệu cọ, nên nếu chia sẻ tệp đó thì có thể tải lại cùng một bộ cọ và palette
      Ý tưởng này được lấy cảm hứng từ cách PICO8 mã hóa dữ liệu trò chơi
  • Khái niệm rất hay. Trên iOS, nếu vuốt nhanh với cọ Aquarelle thì có thể thấy rõ tốc độ polling của sự kiện chạm
    Nét vẽ thì mượt, nhưng do đặc tính màu đậm hơn khi cọ ở lại lâu hơn nên có xuất hiện chút hiện tượng banding

    • Tôi đã sửa phần đó. Tôi cập nhật một phần engine xử lý cảm ứng nên đã khá hơn một chút. Chưa hoàn hảo nhưng tôi đã tìm được điểm cân bằng. Cảm ơn góp ý
  • Tôi không thật sự hiểu cách dùng. Sẽ tốt hơn nếu có tutorial