Name was straight up takes up from Claude with the prompt "Cool canvas names possibly from old times",
Anyhow, this was made a side project after 3-modules into Pikuma's 3-d Graphics Programming course,
I'd just gained ability to render pixels onto screen and was bored with theory, which jump-started a month's journey into making a paint desktop application (ik ik, initializes at 800x600, has single paint colors, so not really something a "cracked guy with high agency" would make)
This how the pixel manipulation wizardry got me feelin' like though

Although the course was in C, i did this in Odin+SDL2 cover Odin exposure Side-Quest
Here is a small demo
| Category | Command | Action |
|---|---|---|
| Basic Drawing | D + Mouse |
Draw continuously |
| Shapes | D + R + Drag |
Create rectangle |
D + C + Drag |
Create circle | |
D + E + Drag |
Create ellipse | |
D + T + Drag |
Create triangle | |
D + L + Drag |
Create straight line | |
| Area Operations | F |
Fill enclosed area (red) |
D + X + Drag |
Clear circular selection | |
| Undo/Redo | U |
Undo last action |
R |
Redo last action | |
| Controls | ESC |
Exit application |
| Auto | Display reference grid |
| Platform | Component | Installation |
|---|---|---|
| All | Odin Compiler | Install from odin-lang.org/docs/install Add to system PATH |
| macOS | SDL2 | brew install sdl2 |
| Linux | SDL2 | sudo apt-get install libsdl2-dev |
| Windows | SDL2 | 1. Download from SDL Releases 2. Extract to vendor/sdl2 in Odin directory |
| Platform | Command |
|---|---|
| macOS | odin run main.odin -file -extra-linker-flags:"-L/opt/homebrew/lib" |
| Linux | odin run main.odin -file |
| Windows | odin run main.odin -file |
Window size is fixed at 800x600 pixels Limited color palette (predefined colors only) No file save/load functionality
Feel free to submit issues and enhancement requests. To contribute:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is open source and available under the MIT License.
