PhotoCraft: Bản sao Photoshop mã nguồn mở được viết lại hoàn toàn bằng Rust
PhotoCraft là dự án mã nguồn mở tái hiện Adobe Photoshop bằng Rust thuần, hỗ trợ layer, mask, vector, brush và đọc ghi file PSD thực tế. Dự án đang ở giai đoạn alpha đầu tiên, chạy native trên macOS, Windows, Linux, FreeBSD và cả trên trình duyệt qua WebAssembly.

PhotoCraft: Bản sao Photoshop mã nguồn mở được viết lại hoàn toàn bằng Rust
PhotoCraft là dự án mã nguồn mở tái hiện Adobe Photoshop theo phương pháp "clean-room" (viết lại từ đầu dựa trên tài liệu công khai, không sử dụng mã nguồn của Adobe). Toàn bộ ứng dụng được viết bằng Rust thuần, hỗ trợ layer, mask, adjustment layer, layer style, vector, brush và đọc ghi file PSD thực tế. Dự án hiện đang ở giai đoạn alpha đầu tiên và được phát hành miễn phí dưới giấy phép kép MIT/Apache-2.0.
Rust - ngôn ngữ lập trình chính của PhotoCraft
Điểm nổi bật của PhotoCraft
Điều khiến PhotoCraft khác biệt so với các dự án chỉnh sửa ảnh mã nguồn mở khác là cách tiếp cận native hoàn toàn. Ứng dụng không dùng Electron, không dùng web view, mà sử dụng một bộ tổng hợp GPU trên wgpu (hỗ trợ Metal, Vulkan, DX12, WebGPU), cùng cơ chế tile copy-on-write và các bộ lọc đa luồng.
- Giao diện quen thuộc: Menu, phím tắt, panel và công cụ được sắp xếp giống Photoshop, từ ⌘J đến ⇧⌘D. Ai đã biết Photoshop gần như không cần học lại.
- Hiệu năng native: Bộ tổng hợp GPU, tile copy-on-write giúp thao tác undo rẻ và canvas lớn nhẹ hơn, các bộ lọc chạy đa luồng trên mọi nhân CPU. Ví dụ, làm mờ Gaussian bán kính 180 trên ảnh 3,6 MP mất chưa đầy một giây.
- File PSD thực: Mở, chỉnh sửa và lưu file Photoshop nhiều layer. Khi lưu lại, kết quả render khớp với 307 trong tổng số 309 file test của psd-tools.
- Sẵn sàng cho agent: Mọi thao tác đều là một command, nên có thể điều khiển cùng một engine từ UI, CLI, JSON control channel hoặc MCP server.
Chỉnh sửa không phá hủy dữ liệu gốc
PhotoCraft giữ triết lý chỉnh sửa không phá hủy (non-destructive) đúng chuẩn Photoshop. Adjustment layer giữ mọi thay đổi ở dạng live: bạn có thể xếp chồng Levels, Curves, Vibrance, Hue/Saturation và hàng chục loại khác, mask chúng vào một vùng, đổi thứ tự hoặc tắt đi, mà pixel gốc không bao giờ bị thay đổi.
Ứng dụng có 16 adjustment layer áp dụng trực tiếp lên pixel, bao gồm Curves với chỉnh sửa theo từng kênh, Levels với histogram trực tiếp, Black & White, Channel Mixer, Gradient Map, Photo Filter, Selective Color và Color Lookup (hỗ trợ .cube, .3dl, .look). Ngoài ra còn có Shadows/Highlights, Replace Color, Match Color, HDR Toning, Desaturate và Equalize.
Hệ thống layer style hỗ trợ Drop Shadow, Inner Shadow, Outer/Inner Glow, Bevel & Emboss, Satin, Stroke, cùng Color/Gradient/Pattern Overlay, hoạt động live trên mọi layer, kể cả layer text.
Bộ công cụ và engine brush
PhotoCraft cung cấp 34 công cụ quen thuộc: Move, Marquee, Lasso, Magic Wand, Quick Selection, Object Selection, Crop, Eyedropper, Brush, Pencil, Mixer Brush, Color Replacement, Eraser, Clone Stamp, Healing Brush, Spot Healing, History Brush, Gradient, Paint Bucket, Blur, Sharpen, Smudge, Dodge, Burn, Sponge, Pen, Path Selection, Type, năm công cụ Shape, Hand và Zoom.
Engine brush thực thụ hỗ trợ Shape Dynamics, Scattering, Texture, Dual Brush, Color Dynamics, Transfer, Brush Pose, Wet Edges, Build-up và Smoothing (bao gồm Pulled String), được điều khiển bởi lực nhấn, độ nghiêng, độ xoay và hướng bút cảm ứng. Các nét cọ có thể tái lập một cách xác định.
Về vector, PhotoCraft có công cụ Rectangle, Ellipse, Triangle, Polygon, Line và Pen, với shape layer độc lập với độ phân giải, gradient fill và nét đứt, nét căn chỉnh. Bạn có thể kết hợp hình dạng (unite, subtract, intersect, exclude), dùng path làm vector mask. Theo nhóm phát triển, 116 trong 116 shape layer trong bộ dữ liệu PSD của họ khớp chính xác với pixel của Photoshop.
Hỗ trợ định dạng và quản lý màu
PhotoCraft đọc ghi PSD và PSB, cùng nhiều định dạng khác: PNG, JPEG, TIFF, WebP, GIF, BMP, TGA, ICO, QOI, PNM, OpenEXR, Radiance HDR và AVIF — đối xứng ở 8, 16 và 32 bit mỗi kênh, kể cả định dạng native .pcraft.
Về quản lý màu ICC viết bằng Rust thuần: hỗ trợ profile nhúng, Assign và Convert to Profile với cả bốn rendering intent cùng bù điểm đen, soft proofing (⌘Y) và Gamut Warning (⇧⌘Y) trên GPU. Ứng dụng hỗ trợ tài liệu RGB, Grayscale, CMYK và Lab ở 8, 16 và 32 bit — độ sâu bit và mô hình màu là dữ liệu runtime, nên mọi công cụ hoạt động ở mọi độ sâu.
Kiến trúc "engine-first" và khả năng chạy trên trình duyệt
PhotoCraft được thiết kế theo hướng engine trước, giao diện sau: một document model thuần dữ liệu và command engine, với UI egui mỏng bên trên. Việc phân tầng được thực thi ngay lúc build trên 24 crate.
- Hai bộ tổng hợp: một bộ tổng hợp CPU làm tham chiếu, một bộ tổng hợp wgpu đưa canvas lên GPU — cả hai được kiểm thử chéo lẫn nhau.
- Tile copy-on-write: tile thưa 256² giúp undo rẻ và canvas lớn nhẹ, effect map được cache theo trạng thái layer.
- Chạy trong trình duyệt: toàn bộ engine và UI biên dịch sang WebAssembly.
- Clean-room: triển khai chỉ từ spec công khai và hành vi quan sát được. Không có mã nguồn, shader hay asset độc quyền nào.
- Kiểm thử kỹ: hơn 1.700 test, bao gồm round trip PSD, sinh dữ liệu tổng hợp, oracle bộ tổng hợp và kiểm tra đa độ sâu.
Hỗ trợ đa nền tảng: macOS, Windows, Linux, FreeBSD và Web
Cài đặt và trải nghiệm
PhotoCraft hỗ trợ macOS, Windows, Linux, FreeBSD và web. Trên Linux, bạn có thể chọn AppImage, .deb, .rpm, tarball hoặc Flatpak bundle. Bản macOS có công cụ dòng lệnh riêng, được ký cùng Developer ID và notarize bởi Apple.
git clone https://github.com/storytold/photocraft
cd photocraft
cargo run --release -p photocraft -- image.psd # ứng dụng desktop
cargo test --workspace # chạy toàn bộ test
PhotoCraft là một phần của bộ Crafting Apps gồm VectorCraft (minh họa vector), FilmCraft (dựng phim, màu và âm thanh), LightCraft (thư viện ảnh và phát triển RAW), PrintCraft (đọc, tổ chức và bảo vệ PDF), EffectCraft (motion graphics và VFX) và DesignCraft (layout trang và xuất bản). Tất cả đều được viết từ đầu bằng Rust và dùng chung quy ước thiết kế.
Trạng thái hiện tại: alpha đầu tiên, chưa thay thế được Photoshop
Nhóm phát triển nói thẳng về giới hạn của dự án. PhotoCraft hiện ở giai đoạn alpha đầu tiên: phần lớn bề mặt tính năng của Photoshop đã tồn tại ở một dạng nào đó, nhưng nó chưa phải là bản thay thế Photoshop cho công việc chuyên nghiệp hằng ngày.
Những khoảng trống lớn nhất là tính năng AI/tạo sinh, khoảng hai mươi công cụ còn thiếu, chiều sâu trong typography và quy trình chuyên nghiệp, cùng khả năng tương thích plug-in. Mọi mục menu của Photoshop đều đã được nối với một command (xem docs/parity.md), nhưng điều đó chỉ đo mức độ nối dây, không đo hành vi thực tế.
Đây là một điểm đáng chú ý đối với cộng đồng mã nguồn mở Việt Nam: PhotoCraft là ví dụ tốt về cách xây dựng một ứng dụng đồ họa native hiệu năng cao bằng Rust, có kiến trúc sẵn sàng cho AI agent điều khiển, và có thể chạy trên trình duyệt thông qua WebAssembly. Dù chưa sẵn sàng để thay thế công cụ thương mại, dự án mở ra hướng đi thú vị cho các nhà phát triển muốn tìm hiểu về xử lý ảnh GPU, quản lý màu và tương tác với định dạng PSD phức tạp.
Cộng đồng có thể tham gia qua Discord của ArtCraft, báo lỗi kèm thông tin hệ điều hành, kích thước tài liệu, số layer và ảnh chụp màn hình để giúp dự án hoàn thiện hơn.


