Crosscut: Vẽ mô hình động – khi nét bút trở thành lập trình
Ink & Switch giới thiệu Crosscut, một công cụ vẽ vector cho phép tạo ra các mô hình động trực tiếp bằng bút cảm ứng thay vì viết mã. Dự án theo đuổi ý tưởng biến máy tính bảng thành một phiên bản động của bút và giấy, nơi việc xây dựng mô hình giống như phác thảo và mày mò hơn là lập trình.

Trong nhiều thập kỷ, giới lập trình vẫn mặc định rằng muốn ra lệnh cho máy tính xử lý một ý tưởng phức tạp, ta phải viết mã. Nhưng nhóm nghiên cứu tại Ink & Switch vừa công bố Crosscut, một nguyên mẫu công cụ cho phép người dùng xây dựng các mô hình động trực tiếp bằng cách vẽ, hứa hẹn thu hẹp khoảng cách giữa sự trực quan của bút giấy và sức mạnh tính toán của phần mềm.
Tư duy không chỉ diễn ra trong đầu
Bài viết mở đầu bằng một luận điểm quen thuộc nhưng đáng suy ngẫm: con người hiếm khi ngồi yên suy nghĩ thuần túy. Khi đối mặt với vấn đề, ta thường vẽ sơ đồ, ghi chú, dựng nguyên mẫu hoặc trao đổi với người khác. Mỗi hành động đó là một cách ngoại hóa tư duy – tạo ra một mô hình đơn giản hóa để lưu giữ, truyền đạt và chiêm nghiệm lại suy nghĩ.
Ví dụ kinh điển được nhắc đến là Watson và Crick. Họ không nghĩ ra cấu trúc xoắn kép DNA trong đầu rồi mới dựng mô hình vật lý để minh họa. Chính quá trình lắp ghép mô hình vật lý giúp họ khám phá ra cách các thành phần của phân tử khớp với nhau.
Mô hình không chỉ là kết quả cuối cùng của tư duy. Việc tạo ra mô hình có thể là một phần không thể tách rời của quá trình hiểu biết.
Nhưng công cụ nào đáp ứng tốt nhất nhu cầu này? Các phần mềm chuyên dụng như CAD, DAW hay công cụ dựng phim cho phép thao tác chính xác và thử nghiệm nhanh. Tuy nhiên, công cụ phổ quát và linh hoạt nhất vẫn là bút và giấy. Vậy có thể thiết kế một công cụ vừa đơn giản như bút giấy, vừa có tính động của phần mềm?
Bài toán đánh đổi của công cụ hiện tại
Máy tính mang lại ba lợi thế rõ rệt: tính toán nhúng (giảm bớt việc tính tay), tính động (mô phỏng, lọc, quan sát từ nhiều góc độ) và khả năng trừu tượng hóa, tái sử dụng miễn phí. Các phần mềm như xử lý văn bản, dựng hình 3D hay sản xuất nhạc đã tận dụng tốt các khả năng này.
Nhưng theo nhóm Ink & Switch, chúng vẫn có hai điểm yếu lớn:
- Khuôn mẫu cố định: giao diện và tính năng được thiết kế cho một dạng biểu đạt định trước, hiếm khi cho phép tạo mô hình tùy biến với cấu trúc bất ngờ.
- Định hướng sản phẩm hoàn thiện: các công cụ này tập trung vào việc làm ra kết quả chỉn chu, trong khi người sáng tạo cần không gian để thử nghiệm những biểu diễn thô, chưa hoàn thiện.
Sơ đồ cấu trúc DNA – ví dụ về sức mạnh của mô hình vật lý trong khám phá khoa học
Giải pháp thay thế là học lập trình. Nhưng lập trình buộc ta phải biểu diễn khái niệm bằng những dãy ký hiệu trừu tượng trong tệp văn bản. Thay vì nghĩ về vấn đề cần giải quyết, ta phải nghĩ theo cách của máy tính – hàm, dữ liệu, luồng điều khiển, xử lý lỗi. Nhóm tác giả đặt câu hỏi đầy ẩn ý: "Hãy tưởng tượng bạn đang cố khám phá cấu trúc phân tử DNA mà vẫn phải lo lắng về luồng điều khiển, cú pháp và xử lý lỗi."
Nguyên tắc thiết kế: không giống lập trình
Crosscut được xây dựng trên một loạt nguyên tắc nhằm tạo cảm giác không giống lập trình:
- Mô phỏng diễn ra trong máy tính, không phải trong đầu người dùng.
- Không cần quan tâm chi tiết kỹ thuật của máy khi đang giải quyết vấn đề.
- Không cần đặt tên cho mọi thứ chỉ để tham chiếu lại.
- Không có lỗi cú pháp, giá trị chưa xác định hay tham số bắt buộc phải điền.
- Nhìn thấy mọi thứ, bao gồm cả biểu diễn đồ họa của dữ liệu và hành vi.
- Có thể kiểm tra mọi thứ, từ thành phần lớn đến những nguyên tử cơ bản nhất.
Mục tiêu là đảo ngược quan hệ quen thuộc: thay vì bẻ cong vấn đề cho phù hợp với máy, hãy uốn máy cho vừa với vấn đề.
Về mặt kỹ thuật, nhóm chọn máy tính bảng và bút cảm ứng làm nền tảng, đồ họa vector làm giao diện tư duy, và quan trọng nhất: giao diện để vẽ và giao diện để xây dựng hành vi động phải là một. Người dùng không phải học hai chế độ làm việc khác nhau.
Hai loại mực: concrete ink và meta ink
Crosscut về bề mặt là một ứng dụng vẽ vector đơn giản, chỉ cho phép vẽ điểm và đường thẳng. Nhưng nó có hai loại "mực":
- Concrete ink (mực đen): các điểm và đường dùng để vẽ biểu diễn cụ thể của suy nghĩ.
- Meta ink (mực vàng): tạo ra quan hệ động giữa những thứ nó chạm vào.
Giao diện phác thảo vector – nền tảng cho cách tiếp cận vẽ mô hình động của Crosscut
Điểm đột phá nằm ở chỗ meta ink thiết lập quan hệ bằng nhau giữa các điểm được nối, tương tự cách các điểm nối trực tiếp trong mạch điện có cùng điện áp. Muốn một điểm chuyển động theo hàm sin của thời gian? Chỉ cần nối một nút meta sin vào thuộc tính x của điểm đó – không cần viết hàm update() với requestAnimationFrame.
Các nút meta như property picker (lấy thuộc tính từ điểm cụ thể) hay port (tạo thuộc tính mới có thể chọn từ bên ngoài) tạo thành giao diện lập trình cấp thấp, nhưng khác biệt căn bản so với các công cụ nối dây truyền thống: bạn luôn thao tác trực tiếp trên biểu diễn đồ họa, không phải trên ký hiệu trừu tượng.
Thư viện bộ phận và đóng gói không "dán keo"
Mọi hình vẽ trong Crosscut đều tự động trở thành bộ phận tái sử dụng. Thu nhỏ giao diện (pinch-to-zoom) sẽ đưa bạn vào thư viện – một canvas tự do nơi bạn sắp xếp các bộ phận theo cách hợp lý nhất với mình.
Không có nút "tạo bộ phận mới rỗng". Thay vào đó, bạn nhân bản một bộ phận có sẵn rồi chỉnh sửa – cách làm khuyến khích tư duy pha trộn và lặp lại.
Điểm khác biệt lớn so với các công cụ như Max/MSP: Crosscut cho phép đóng gói mà không cô lập (encapsulation without lamination). Khi lồng một bộ phận vào bộ phận khác, meta ink bên trong bị ẩn đi, nhưng bạn vẫn có thể nối mực từ bên ngoài vào các điểm cụ thể bên trong. Nhóm tác giả gọi việc chặn hoàn toàn tương tác xuyên biên giới lồng ghép là "một hình thức rườm rà thừa thãi phá vỡ dòng suy nghĩ".
Lặp lại và truy vấn không gian: còn nhiều trăn trở
Crosscut cung cấp hai cơ chế lặp: repeat (nhân bản một bộ phận với chỉ số index) và spread (nối trực tiếp logic biến thiên vào nút nhân bản). Cả hai đều được nhóm phát triển thừa nhận là chưa thực sự thành công: repeat thiếu ngữ cảnh, còn spread khó kết hợp và gây ra "hành động kỳ quái từ xa".
Về truy vấn không gian, mỗi bộ phận lồng ghép tự động có thuộc tính count – đếm số điểm cụ thể nằm trong một đa giác kín. Đơn giản đến mức thô bạo, nhưng đủ để tạo công tắc và nút bật/tắt. Nhóm nghiên cứu để ngỏ nhiều hướng mở rộng: truy vấn khoảng cách, góc, giao điểm, hay truy vấn ngược.
Một thử nghiệm thú vị là máy tuần tự bước (step sequencer) nhỏ: mũi chạy ảo quét qua các điểm cụ thể, điều khiển nhịp trống khi được kéo vào vùng "play". Đáng chú ý là chỉ cần rất ít meta ink để biến các bộ phận đơn giản thành một nhạc cụ tương tác.
Đánh giá: chương trình chính là bản vẽ
Crosscut là một trong số ít hệ thống lập trình đặt mã đang chạy và dữ liệu hữu hình trong cùng một không gian, dùng chung phép ẩn dụ và công cụ thao tác trực tiếp. Không có "mặt sau" của chương trình như HyperCard – không cần chuyển đổi giữa chế độ xem và chế độ sửa mã.
Hai đặc điểm nổi bật:
- Không lỗi cú pháp hay lỗi thời gian chạy: mọi giá trị trong meta ink hoặc là điểm cụ thể, hoặc là số; mọi nút meta đều có giá trị mặc định. Mô hình luôn "sống" ngay cả khi mới xây dựng một phần.
- Đánh giá hai chiều: kéo một điểm sẽ lan truyền thay đổi qua mạng lưới, và quan hệ vẫn đúng theo cả hai hướng. Kỹ thuật này có hạn chế cố hữu (ví dụ hàm sin chỉ xác định trong khoảng [-1, 1] khi chạy ngược) và có thể gây vòng lặp tính toán sai trong đồ thị tuần hoàn.
Ý nghĩa với người dùng Việt Nam
Crosscut vẫn là nguyên mẫu nghiên cứu, chưa phải sản phẩm thương mại. Nhưng các ý tưởng của nó đáng để theo dõi, đặc biệt với những ai làm công việc sáng tạo và giáo dục tại Việt Nam:
- Giáo dục STEM: một công cụ cho phép học sinh vẽ hình học động, thử nghiệm vật lý mà không cần học cú pháp lập trình sẽ rất phù hợp với các lớp học phổ thông.
- Thiết kế và kiến trúc: mô hình tham số trực quan giúp kiến trúc sư thử nghiệm nhanh hơn so với việc dựng script Grasshopper.
- Công cụ nội bộ cho startup: tư duy "chương trình là bản vẽ" gợi mở hướng tiếp cận mới cho các công cụ low-code, no-code đang phổ biến.
Điều thú vị nhất ở Crosscut không nằm ở tính năng cụ thể nào, mà ở câu hỏi triết học nó đặt ra: liệu chúng ta có thể thiết kế máy tính để nó phục vụ cách con người tư duy, thay vì buộc con người phải tư duy theo cách của máy?
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Bản đồ camera Flock: Công cụ giúp bạn biết ai đang ghi lại hình ảnh xe mình
25 tháng 10, 2026