Ciallo is an open-source graphics program for professional digital painting. It aims to compete with traditional raster painting software like Photoshop and Clip Studio Paint, while offering the following unique features researched by the developer:
Vectorized stamp brushes, entirely drawn (rendered) on your graphics card (GPU).
Resolution-independent airbrush, adjust the opacity falloff directly, with ultra‑fast rendering performance.
Export your artwork into the Godot game engine (as a .scn/.tscn file), and keep it resolution-independent. Like those old days when Flash was alive.
Will support other game engines in the future.
Bucket fill in vector form: The positions to fill are editable and tracked with "fill markers", the shape
Copy and paste these markers between animation frames:
The following features may be in your favor:
Ciallo uses a custom vector format that is aiming to be the game industry standard and hard to generate by the current AI techniques. Unless being explicitly declared by the copyright owners, artworks from Ciallo are forbidden to be trained.
Unlike the big company, Ciallo will never steal your artwork stocks for training AI. We also plan to build a sharing platform while protecting your artworks from unethical AI training.
In the invisible-far future, Ciallo may offer AI-powered features --- but always designed for professional artists.
Ciallo aims to provide a drawing/pen feel significantly better than Clip Studio Paint and Procreate; this will require several technical advancements in future updates. For the current version, the feel is not worse than Clip Studio Paint and certainly better than Photoshop, GIMP, or MyPaint. (Report a bug if the paint tool feels laggier than Photoshop or Krita.)
@Developer: "I have never seen a professional artist who needs an infinite canvas when drawing illustrators, mangas, or animes. Do you really need this? Tell me how I can add better support.
System requirements: Requires a system capable of running small to mid-sized 3D games. Close any other software that heavily uses your GPU before opening Ciallo (except OBS, if necessary).
- OS: Windows 10 or higher
- Memory: 6 GB or more
- GPU: Minimum NV GTX 1650 or AMD Radeon RX 6500 XT
- Monitor: A refresh rate greater than 100 Hz is recommended for the best drawing experience
- Tablet: Use your tablet at its maximum polling/reporting rate. (If you need to buy a new one, the fastest is Wacom DTC-141.)
Ciallo is highly sensitive to your tablet polling rate. It can potentially respond to tablet/mouse input at up to 1000 Hz. However, tablets in 2025 can reach at most 360 Hz (DTC-141), and 150–200 Hz on average, which is highly insufficient for capturing small turning points and handwritten text. If a tablet with a 500–1000 Hz polling rate becomes available on the market, contact me — Ciallo will try to add support.
About macOS: I literally wish to support macOS, but I cannot afford a MacBook Pro (it would cost me roughly half a year's living expenses). Consider sponsoring me on Patreon; really lacking of money.
EA stage
Ciallo is in an early stage of development; its version number will be labeled as EA (early access). During the EA stage, Ciallo mainly focuses on R&D of traditional painting features using modern shaders and GPU APIs. After finishing those major painting features, we plan to open Steam Workshop, marking the end of the EA stage.
Hand-drawn art
Although Ciallo focuses on vector features, it is NOT intended to replace Inkscape or Illustrator for graphic design. Instead, it aims to provide Clip Studio Paint or Krita vector layers on super steroids. All features that were previously available only in raster workflows would be supported in Ciallo's new vector workflow.
Game art first
Except for the core painting, Ciallo prioritizes auxiliary features supporting video game development. It aims to be a DCC program providing vector hand-drawn assets, including illustrations, 2D animations and hand-drawn textures in 3D.
Hope Ciallo has already addressed something important to you. (To be frank, the large company should have provided these infrastructures a decade ago.) There's always more to add as Ciallo grows. Check the Contributing Tab for the development plan.
The developer basically knows the most needed features during the EA stage. These are the YouTube channels he learns painting: Dong Chang | Aaron's Painter Tutorials | saitonaoki.
Instead of asking for features existing in other paint programs, you may propose creative features unconstrained in style. The developer would love to hear new ideas about line art (especially anime-style art) and may be able to do technical research on your request.
If you urgently need a feature from other programs implemented in Ciallo within a week or month, consider contacting the developer or sponsoring the project.
Ciallo's mission is to bring advanced hard-drawn art techniques from dream to life. It needs your support to keep them free and accessible to everyone.
Consider patreon on Ciallo development, the developer will post plans, designs and teasers about innovative features well before release, which acts as a pre-manual to understand how to use Ciallo. Check the post About Vector Fill as an example.
Moreover, in this age of AI we all face challenges from rapidly advancing AI techniques. Hope Ciallo will be the tool that helps you shine in this era — a tool that liberates your creativity, not one that replaces it with AI or steals it to feed AI. Sponsor Ciallo to shape the future of your digital painting and help keep creativity alive in an AI-driven world.
For the purposes of this Project, "Artwork" means any brushes and drawings saved, exported, or represented in Ciallo's native format, other game engine vector formats, or raster format. The copyright owner of an Artwork (the "Owner") retains all rights in and to that Artwork. We do not claim any rights over user-created Artwork.
Unless the Owner has given explicit express, written permission, any use of Artwork to train, fine‑tune, validate, evaluate, or otherwise improve machine learning, generative AI, or other automated models or datasets is strictly prohibited. Prohibited acts include, without limitation, collection, copying, ingestion, extraction, annotation, transformation, or inclusion of such Artwork in any training, testing, or benchmarking dataset.
Explicit prohibition on "no‑copyright" labels and opt‑out schemes: Artwork labeled or claimed as "no copyright", "public domain", or similar does not authorize AI training under this project's terms. Likewise, any purported "opt‑out" or "unless the Owner opts out" declarations (i.e., statements that artworks may be used for AI purposes unless an Owner affirmatively opts out) do not and shall not be treated as authorization to use Artwork and this project for AI training. Such uses are violations of this project's terms and may result in injunctive relief, damages, and recovery of costs and attorneys' fees under applicable law.
Unless otherwise specified, files in this repository are licensed under the AGPL-3.0 license.
For the purposes of this Project, "Shader Code" means any GPU shader program, shader graph, material shader, or related code used to render strokes, fills, brushes, or other visual effects in this project.
-
Use in Artwork
You are explicitly allowed to use the Shader Code render Artwork in closed‑source or commercial games, including shipping binaries and asset bundles containing compiled, optimized, or obfuscated versions of the Shader Code, without any obligation to publish your game source code or shader source code, as long as:
- You do not distribute the Shader Code as a general‑purpose graphics component.
- You do not use the rendered Artwork for AI training purposes or give training permission to others.
-
Use in other software
Parts of the Shader Code implement original rendering algorithms and techniques that are the result of Shen Ciao's own research. Unless you obtain the researcher Shen's explicit permission, if you integrate the Shader Code (or modified versions of it) into any other program, that program and all parts using the Shader Code must be released under the same AGPL‑3.0 license and made publicly available in source form.
This includes, without limitation:
- Using the Shader Code inside AI‑assisted painting tools or AI model pipelines;
- Taking the Shader Code and shipping it in a closed‑source or proprietary drawing/painting application without releasing your source code under AGPL‑3.0;
-
No AI‑training opt‑out bypass
Labeling Shader‑rendered assets or shaders themselves as “no copyright”, “public domain”, or similar does not grant permission for AI training under these terms. Any “opt‑out” or “unless the Owner opts out” AI policies do not override this notice. Unauthorised AI use of the Shader Code or Shader‑rendered assets is a violation of this project’s terms.
These special Shader Code terms are an integral part of the Project’s licensing and must be read together with the AGPL‑3.0 license and the "User‑created content copyright and AI notice" above.
The name "Ciallo" is a combination of the Italian "Ciao" and English "Hello", and means "Hello". It comes from the galgames developed by Yuzusoft. We won't shame this name.
Check Ciallo's research project if you are interested in how Ciallo's unique features are implemented.
SIGGRAPH 2024 Technical Paper (Conference Track)
@inproceedings{10.1145/3641519.3657418,
author = {Ciao, Shen and Guan, Zhongyue and Liu, Qianxi and Wei, Li-Yi and Wang, Zeyu},
title = {Ciallo: GPU-Accelerated Rendering of Vector Brush Strokes},
year = {2024},
isbn = {9798400705250},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3641519.3657418},
doi = {10.1145/3641519.3657418},
booktitle = {ACM SIGGRAPH 2024 Conference Papers},
articleno = {3},
numpages = {11},
keywords = {brush stroke rendering, digital painting, vector graphics},
location = {Denver, CO, USA},
series = {SIGGRAPH '24}
}
SIGGRAPH 2023 Talk
@inproceedings{Ciallo,
author = {Ciao, Shen and Wei, Li-Yi},
title = {Ciallo: The next-Generation Vector Paint Program},
year = {2023},
isbn = {9798400701436},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3587421.3595418},
doi = {10.1145/3587421.3595418},
booktitle = {ACM SIGGRAPH 2023 Talks},
articleno = {67},
numpages = {2},
keywords = {Digital painting, stylized stroke, arrangement, vector graphics. coloring, graphics processing unit (GPU)},
location = {Los Angeles, CA, USA},
series = {SIGGRAPH '23}
}
- Godot C#: Why godot?
- Frent: Unity-like (gameobject/entity) component pattern (ECS library without need for the 'S').
- CGAL: Complex geometry operations.
- R3: Signal on steroids and reactive programming.
- GdUnit4: Unit test framework.
- MessagePack: Binary serialization.
- Newtonsoft.Json: JSON serialization.
- GodotSharp.SourceGenerators: Godot auxiliary.
- Stateless: Managing complex interactive states (tool system).
Ciallo is built on Godot. Building the core part of Ciallo is the same as building a standard Godot C# project:
- Set up Godot 4.5.1 with .Net9. You can follow an arbitrary video guide, but pay attention to the version.
- Open the
Ciallo/project.godotfile with your Godot editor, then build and run.
Go to Contributing Tab for a more complete guide.
Shen answers the following questions:
TL;DR: I cannot handle the complexity of Vulkan.
My first attempt to develop Ciallo was with raw Vulkan, project link, motivated by the rather naive reason: “my next-generation technology should be built on next-generation technical foundations.”
I soon realize the complexity of Vulkan: it isn’t designed for one-person projects, and even highly experienced graphics engineers can make simple yet catastrophic mistakes, see Cherno’s Vulkan story. Only large teams can truly afford the mental burden of Vulkan.
So, I decided to sacrifice the freedom of controlling graphics in exchange for productivity. Under this idea, one of the game engines is the best choice.
You can consider Ciallo as a building/RTS game, e.g., City Skylines, Warcraft III. Players build strokes (polylines) and place color blocks (polygons) in the game world (canvas).
Godot has the best 2D rendering infrastructure and GUI widgets.
For example, as of June 2025, Godot is the only engine that supports rendering a filled polygon directly from a list of points (without manual tessellation).
Moreover, Godot’s ColorPicker control convinced me to choose it over Unity.
On the other side, Godot's convenience brings potential limitations on rendering.
I'm far away from being familiar with the low-level RenderingDevice api of Godot.
If we have to give up using Godot for whatever reason someday, we may consider using defold or flax.
Dynamically-typed languages cannot support our project (or, IMHO, any projects that need more than 5 custom types). C# is a better choice, also for its larger community. Developing a mature programming language is as hard as developing the game engine itself. GDscript is doubling the efforts as Godot grows.
But I do like the GDScript language itself. In my wet dream, Godot will treat C# as the first citizen and add shader programming support to "GDScript" for graphics.
The graphics community lacks an advanced programming language for shading. Compared to C#, GDScript lacks many features, but compared to GLSL/HLSL, GDScript is already very feature-rich.