{"id":18893644,"url":"https://github.com/fuzzyzilla/fuzzpaint","last_synced_at":"2025-04-15T00:31:49.001Z","repository":{"id":177193932,"uuid":"647563392","full_name":"Fuzzyzilla/fuzzpaint","owner":"Fuzzyzilla","description":"Graphics accelerated vector paint program for compositing nerds","archived":false,"fork":false,"pushed_at":"2025-03-24T02:55:05.000Z","size":3296,"stargazers_count":21,"open_issues_count":5,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T03:32:22.166Z","etag":null,"topics":["drawing","drawing-app","graphics","graphics-programming"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fuzzyzilla.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-31T03:43:46.000Z","updated_at":"2025-03-24T02:55:09.000Z","dependencies_parsed_at":"2023-07-11T00:01:01.410Z","dependency_job_id":"6de5abaf-c556-4764-b136-e1d43f6be772","html_url":"https://github.com/Fuzzyzilla/fuzzpaint","commit_stats":null,"previous_names":["fuzzyzilla/fuzzpaint-vk","fuzzyzilla/fuzzpaint"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fuzzyzilla%2Ffuzzpaint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fuzzyzilla%2Ffuzzpaint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fuzzyzilla%2Ffuzzpaint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fuzzyzilla%2Ffuzzpaint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fuzzyzilla","download_url":"https://codeload.github.com/Fuzzyzilla/fuzzpaint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248984340,"owners_count":21193729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drawing","drawing-app","graphics","graphics-programming"],"created_at":"2024-11-08T08:14:46.749Z","updated_at":"2025-04-15T00:31:47.594Z","avatar_url":"https://github.com/Fuzzyzilla.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cp style=\"text-align:center;\"\u003e\u003ca href=\"#\" onclick=\"return false;\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/googlefonts/noto-emoji/main/svg/emoji_u1f411.svg\" alt=\"Baa\" title=\"Baa\" style=\"position:relative;bottom: -0.2em;width:1em;\"/\u003e\u003c/a\u003e Fuzzpaint\u003c/p\u003e\n\n![a screenshot of the app, with a sheep mascot drawn](demo-images/full.png)\n\nA graphics-accelerated digital art software combining the ease-of-use of raster with the lossless quality of vector.\n\n**This project is in heavy development**, many features are in-progress and semver is ignored. Notably, **drawings cannot yet be saved** - but you can doodle to your heart's content!\n\n## Goals\n* Fast, efficient, and instant to launch even on low power hardware.\n* A workflow that serves everything from quick jotting down of ideas to detailed artworks.\n* No choice is set in stone - change brushes, resolution, and colors retroactively in your work.\n* Every edit is lossless and undo-able, even after you close the program - files include their entire undo tree.\n* Small, portable, self-contained document files (for people like me who save every doodle!)\n* In an error, unsaved changes should never be lost - losing user work is unacceptable!\n* Resources are viral - take and use the brushes, textures, effects, fonts, etc. found in drawings you've downloaded.\n* A modular application design allowing CLI, headless servers, and graphical clients to all share the same codebase.\n\n### Dreams\n* Optional Client/Server system allowing realtime collaboration.\n\n### Non goals\n* Image editing - though this project aims to provide my ideal digital art creation environment over traditional raster software, it does not aim to implement the other functions of a raster image editor.\n* Vector design - Despite it's vector nature, Fuzzpaint does not aim to provide precise control over curves and is instead intended for freeform hand-drawn artwork.\n\n## Building\nRequires the [most recent Rust *nightly* toolchain](https://www.rust-lang.org/tools/install). Clone and execute `cargo +nightly run --release` from within the root directory of this repo!\n\n## Platform Support\nThis app is cross platform and should run on any device that meets the [current vulkan requirements](assumptions.md).\n(if your device doesnt work - even if it's because of these requirements - please file an issue!).\n\nFor tablet support, see the [octotablet](https://github.com/Fuzzyzilla/octotablet) sister project.\n\n# Road to **0.2.0**\nTo declare **0.2.0**, I would like to be able to freely doodle a thing and save it to disk. We're getting dangerously close!\n\n - [ ] File I/O\n   - [ ] Read/Write [custom vector image format](fileschema.md)\n   - [ ] Write file history\n   - [ ] Export common image formats\n     - via image-rs/image\n   - [X] [Shell integration](https://github.com/Fuzzyzilla/fuzzpaint-thumbnailer)\n - [ ] Brushes\n   - [ ] Make and manage textured brushes from inside fuzzpaint\n   - [ ] Save brushes to file\n     - To document or to global repo? - resolved: both, with ~~UUIDs~~ cryptographic hashes! That way, files can be freely shared, and brushes can be easily re-used.\n   - [X] Tesselation engine capable of mixed brushes\n   - [X] Stamped brushes\n   - [X] Efficient erasers\n - [ ] Layers\n   - [X] Simple UI to manage layer creation, order, modes, etc.\n   - [X] Blending shaders\n     - fall forward on `EXT_blend_operation_advanced` or `EXT_fragment_shader_interlock`?\n   - [X] Passthrough, grouped-blend layers\n   - [X] Color fill layers\n   - [ ] Text layers\n   - FX + other self-populating layers (clone, gradients) come later\n - [ ] UI\n   - [X] Initial layout\n   - [X] A ~~simple~~ **✨robust and rebindable✨** hotkey system, with support for\n         pen and pad buttons (although, pen+pad events are not yet wired up)\n   - [X] Application settings menu\n   - [X] Infinite Undo/Redo\n   - [X] Pan, Zoom, Scroll, Rotate\n   - [ ] Mirror\n   - [X] Fit, 100% modes\n - [ ] Editor\n   - [ ] Color, Object Pickers\n   - [ ] Select strokes\n     - [ ] Select parts of strokes\n   - [X] Transform layers\n   - [ ] Transform strokes\n   - [ ] Cut, Copy, Paste strokes (within program only)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuzzyzilla%2Ffuzzpaint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuzzyzilla%2Ffuzzpaint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuzzyzilla%2Ffuzzpaint/lists"}