Canvas
2082 readers
4 users here now
Canvas β The Fediverseβs r/place
2024 Concluded!
Get a print!
- Check out the other items
- mastodon.world, lemmy.world, blahaj.zone, toot.community, toast.ooo, canvas 2024 stickers also available!
- Donate directly
Links
- fediverse.events
- GitLab / Source
- Matrix Space
- Discord Server (bridged to matrix)
Timelapses
founded 1 year ago
MODERATORS
1
have you been working on a tool to show information related to canvas? want to share it around/get input?
Data files:
- Database Dump: https://cdn.sc07.company/canvas/2024/canvas-stripped.sql.txt
- Final PNG: https://cdn.sc07.company/canvas/2024/finished.png
- Full Timelapse Raw (@2x scale): https://cdn.sc07.company/canvas/2024/full.mp4
Repos:
- Canvas: https://git.sc07.company/sc07/canvas
- Canvas Timelapse: https://git.sc07.company/sc07/canvas-timelapse
if you would like me to host it on a subdomain of .fediverse.events
post a comment below explaining your project
2
139
Full Timelapse: PeerTube, YouTube, Raw File
Full Image: https://cdn.sc07.company/canvas/2024/finished.png
Canvas poster
π¨π¨π¨ You can now pre-order the posters!!
These are pre-orders, the first orders will be shipped out August 1st following the shipping information listed on the site
Most countries are supported if yours is not listed, send me an email [email protected]
or comment below π
Instance Stickers
Proceeds from instance stickers go to their respective instances π
- blahaj.zone Logo
- lemmy.world Logo
- mastodon.world Logo
- toot.community Logo
- π toast.ooo Logo
- Canvas 2024 Logo
Direct Donations
If you would like to directly donate to Canvas w/o making any purchases, I accept donations via Stripe π
(i wasn't clear on the stripe page that the fediverse handles would be public, so this is a placeholder until i get confirmation they all want it public or not)
Support
If you are having issues with the website, send an email to [email protected]
Database Dump
the old system for pixel placement logs was flawed, and someone suggested the brilliant idea of just publishing the database dump, it already has all the information anyway
no ip addresses, or ban logs only pixel placements (with username), pixel moderation logs and palette settings
https://cdn.sc07.company/canvas/2024/canvas-stripped.sql.txt
3
the event has concluded! thank you all for participating!
this has been incredibly fun to run, as it was last year (although there was a bit more hiccups this time around)
β Crossposters: link back to this post as it will be updated with more information β
Event date: July 12th, 2024 @ 4am UTC til ~~July 15th @ 4am UTC (72 hours)~~ July 16th @ 4am UTC (72 hours + 24 hours) (it was extended due to a massive performance issue that caused major downtime)
Future events
I'm planning to host another one next year, so stay tuned π
If you have suggestions for canvas 2025 or any other events, post them in this post (thanks Ategon)
Supporting the project πππ
I have spent a little over 6 months completely rebuilding Canvas from the ground up to support future features, and i would love to work on more fediverse events
poster sales
posters of the final canvas will be sold, if you would like to stay updated with information on those, follow the Mastodon account or send an email to [email protected]
π
the shop site will also include stickers for the following instances:
- mastodon.world
- lemmy.world
- blahaj.zone
- toot.community
- toast.ooo
- Canvas 2024
β¨ I wanted to have the shop setup before the event ending, but i couldn't get it setup quick enough unfortunately
EDIT: Shop is now live!
direct donations
Donating via Stripe is the best way to donate directly
contributing to the code
canvas is open-source and is on a self-hosted gitlab instance at https://git.sc07.company/sc07/canvas
at time of writing; the gitlab server randomly restarts due to resource limits
Timelapses
i need to rewrite the timelapse script as some people pointed out some weirdness with the other ones (that's also what delayed this post by almost 3 hours)
Data
Database dump: (48mb) https://cdn.sc07.company/canvas/2024/canvas-stripped.sql.txt
Contains pixel placements, canvas moderation actions, and palette colors no IP addresses
chat.fediverse.events
This will stay up as long as i can keep it running for, i'll make some improvements eventually as well
tools (like a canvas atlas)
if anyone is wanting to build something for canvas, i'd be willing to host the project & give it a subdomain of .fediverse.events
just send me a matrix dm, a dm on discord (grahhnt
) or an email [email protected]
Special thanks
thank you to the moderators that helped me this year, even with how stressful it was π¨
- Ategon (https://ategon.dev/)
- Sugar (sc07)
- Bigcheese
- TheWaffleLord
and the contributors to the code once the event started: π»
- Ategon
- Marius
- soda_cans
and thank you, once again, for participating this year, i hope you enjoyed it as much as i did π
i'm going to now go enjoy my 21st π₯³π
- grant
![](https://social.fediverse.events/system/media_attachments/files/112/795/068/198/185/338/original/9e7e1043284941f2.png)
4
Thanks for joining in! The canvas is now finished!
Iβm going to be leaving the canvas up and read-only for a couple days, but not too long.
This was incredibly fun to host, thank you all for participating! β₯
Event date: August 4th (12:00am EST) - 6th (11:59pm EST)
Future Events
Iβd love to make this a yearly event. Expanding from just Lemmy to the entirety of the fediverse aswell!
Iβll reuse this Lemmy community & the Matrix space for that event
If you have suggestions for future events, post them in a comment on this post, each suggestion as itβs own comment so people can vote on them
Timelapses:
- First 24h
- 24h - 48h
- 48h - 72h
- Start to finish
Data:
- Pixel Placement Logfile (timestamps, usernames, coords, pallete index, no ip addresses) (42mb)
- Pallete Indexes (eg 0 = black, 1 = dark gray, etc)
- Final Canvas PNG
![](https://toast.ooo/pictrs/image/dba3b98a-e4b3-4505-b936-369c682cfba8.png)
6
7
Over the last 2 weeks, I worked to adapt the code that was used for making the 2023 r/place atlas, adapting it to work with this event, as well as making it work on GitLab and Lemmy.
The site is at atlas.mariusdavid.fr, the lemmy community is [email protected].
The goal of the atlas is to register the meaning of the elements(/arts/placements/zones) of the Canvas, as well as (optionally) meta element about the element itself (like which community placed it).
It offer both the possibility to create new entry or to edit existing ones.
It is ready to receive your contribution (Iβve already put a few elements I worked on). You can start by clicking the βDrawβ button, then drawing the element and filling other informations (all but the title are optionals. The 4 specific kind of links (Lemmy, Matrix, Discord, SubReddit) are just to better format them, but any kind of link can be put in the βWebsiteβ box). Once finished, youβll have a piece of JSON code that you can copy-paste in a post on the above community (not this [email protected] one). A bot will then make an MR on Gitlab, which will allow preview, review and approval. (note that opening the MR might take 10 minutes, and making the preview another 10 minutes. Technically speaking, it work by polling, which is not very efficient for quick reaction time).
The full source code is also available on sc07βs GitLab https://git.sc07.company/marius851000/fediverse-canvas-atlas-2024 and there is also a Matrix room at https://matrix.to/#/#lemmy-canvas-atlas-discussion:mariusdavid.fr (avaible from the general Canvas space).
ps: There is no formal method to describe an entry. I will recommend starting by describing what is presented, then putting more meta information, like which community (or user) placed it, who drew it and this kind of stuff.
8
Orders ship out a week from now!!
- πΌ Canvas 2023 & 2024 posters @[email protected]
- π mastodon.world, lemmy.world, blahaj.zone, toot.community, toast.ooo & Canvas 2024 stickers
- π Shipping internationally (DM me if you have any issues)
Instance sticker proceeds go to their respective instance β¨
![](https://files.grants.cafe/media_attachments/files/112/848/746/071/322/344/original/dad5d554302f50b4.png)
9
There was an error with the fediverse-auth on the Canvas site where after a certain point new logins started being logged as all lower case which created duplicates of 59 users and were treated as separate users. I have merged all of the duplicate accounts and rebuild the database.
This also means that all of the stats on Canvas Stats are incorrect. The canvas Stats app has been updated with the new data.
You can find the fixed database dump sql file on my github: https://raw.githubusercontent.com/TheRealMonte/data-files/main/2024/canvas-2024-fixed-sql.sql The file is 33,568 kB.
The SQL file has 4 tables:
- users (user_id, username, ranking, total_pixels_placed)
- colors (color_id, color_name, color_hex)
- pixels (log_id, user_id, x_cord, y_cord, color_id, time_placed, is_mod_action, is_top, time_deleted)
- top_cord (top_cord_id, user_id, x_cord, y_cord, count_placed)
The users table includes the rank and total pixels placed for each user. Deleted pixels are not counted. There are 13 users who deleted every pixel the placed. They are still ranked, but their total pixel count is 0.
The colors table includes the color ID, name, and hex which when joined with the pixels table can be used to easly select the color name or hex.
The pixels table includes the username, x and y coordinates, color ID, the time the pixel was placed, if the pixel was a moderator placement, if the pixel can be seen in the final image, and the time the pixel was deleted or NULL.
The top_cord table includes the x and y coordiantes for the coordinate each user placed the most pixels on along with the count.
The only data not included here is the pixel color counts for each user. You an find the pixel color counts for a user by selecting:
SELECT color_name, count(color_name) FROM public.pixels JOIN users on users.user_id = pixels.user_id JOIN colors on colors.color_id = pixels.color_id WHERE username = <username> GROUP BY color_name
10
Another update to Canvas Stats app. You can now view your pixels you placed during the event in your browser and download the pixels as a png image!
11
I have updated Canvas Stats with the new data from the sql log. Rankings should mostly be the same as the old data, but your total pixel count will be lower since deleted pixels no longer count. A new feature to the site is you can now see if your top coordinate placed is also another users top coordinate placed, which would mean you were probably battling it out over a pixel.
I am also generating images of individual user's pixels. If anyone is interested, just send me a DM. Here is an example of just the pixels that @[email protected] placed:
If you would prefer the background to be black instead of white, let me know in your DM.
Another feature I added was overall stats for the event.
12
Small disclaimer this is from the txt log which is not exactly complete, there are few pixels missing here and there.
One second of the video is about 30 minutes of drawing (one frame contains 1 minute of drawing, 30 frames per second)
Also a little bit of bragging - couldn't resist the challenge and got this all glued together in Python! Which is obviously a valid tool for this considering the rich data processing ecosystem.
Well maybe except the video generation part... definitely except the video generation - Pyav - bindings for ffmpeg, are really badly documented, luckily they have at least good enough examples.
The short story of how:
- little bit of python script to convert the txt log into csv
- from csv to pandas, there I made a few cleaning passes to get the "format" just right (mainly dealing with the
mod_fill
action) - pyav, ffmpeg and the world of video - oh boy:
- for each one minute of drawing data
- replay them over the canvas (numpy RGB array)
- embed/copy the canvas into the video frame (another ndarray)
- (add the timestamp above the canvas - cv2)
- invoke pyav magic to mux/append it into the video
- hope that your numpy array slices, splices, "broadcasts", pyav codec options and stream configurations are correct. Otherwise, watch as you end up with 1GB+ of mp4 file - 3 hours to watch whole (1s/30fps) with really bad resolution or inverted/wrong colors:)
If anyone wants to tweak this or has ideas how to make this better just hit me up. Can also put the code somewhere if wanted.
What a wild ride ha!
14
Hi everybody! I have finished building a web app that allows you to search for a user and view their stats from the event! The app will tell you your overall ranking, number of pixels placed, the coordinate you placed the most pixels on, and how many of each color you placed.
I will probably add more features to the website, but I wanted to get something out there so everyone could see how they did.
Thanks @[email protected] for providing the data.
15
80
16
0
In canvas 2025, what if we ganged up against the largest country flag, whichever it is?
(mander.xyz)
[Idea] If you don't want to see huge flags taking space over actual drawings in the Canvas, pick the biggest flag that you can find to deface.
As long as a lot of people are doing that, the ones templating larger flags will be forced to reduce their layouts and give more room for actual drawings.
[Reasoning] When it comes to country flags, I think that the immense majority of the users can be split into four groups:
- The ones who don't want to see country flags at all.
- The ones who are OK with smaller flags, but don't want to see larger ones.
- The ones who want to see a specific large flag taking a huge chunk of space.
- The ones who want to see the whole canvas burning, like the void.
I'm myself firmly rooted into #1, but this idea is a compromise between #1, #2 and #4.
Typically #3 uses numbers (and/or bots) to seize a huge chunk of the canvas to their flags. Well, let's use numbers against it then. As long as #1, #2 and #4 are trying to wreck the same flag, we win.
[inb4]
But what about identity flags?
Not a problem. They're typically bands instead of thick squares, and people drawing them are fairly accommodating.
But what about [insert another thing]
Even if [thing] is a problem, it's probably minor in comparison with huge country flags.
What should be the template?
None. We don't need one, as long as everyone is working against the same large flag.
Just draw something of your choice over the flag, preferably over its iconic features.
But I'm not creative enough for that!
No matter how shitty your drawing is, it's probably still way more original than a country flag. So don't feel discouraged.
That said, you can always help someone else with their drawing. Or plop in some text. Or just void.
Why are you posting this now, you bloody Slowpoke?
I wish that I thought about this before Canvas 2024. But better later than never. (And better early by a year for Canvas 2025.)
EDIT: addressing on general grounds some whining from group #3 (the ones who want to see a specific large flag taking a huge chunk of the canvas space).
You do realise that this sort of "war against the largest flag" should benefit even you, as long as the biggest flag is not the one you're working with, right? Even for you, this makes the canvas a more even level field. Let us not forget that you love to cover other flags with your own.
17
31
There are a total of 34 mini custom/abstract flags scattered across the entire canvas - can you find them all?
(sh.itjust.works)
After I finished working on my drawing, I spent some extra time on the event drawing small custom/abstract flags inspired from generated flags from my flag generator, placed on random locations of tiny available spaces on the canvas. Mainly just to help fill the canvas, but overall, that was a cool and fun idea.
I drew a total of 40 flags, but not all of them managed to survive until the end of the event. So, I double-checked and counted all the survived flags, and in total, there are 34 survived flags on the canvas. If you managed to find all of them, I'll reveal a huge list of locations in the comments!
These are some of the mini flags, for a bit of a hint.
18
87
Just from "a quick query" by the admin.
there'll be a better one later, this is just a quick query
![](https://i.imgur.com/uERwkPw.jpeg)
19
Hey everyone! Thanks for participating in Canvas. I wanted to make a thread to collect together suggestions people have that can be worked on before the next Canvas.
Feel free to also throw in suggestions for future Events we can build and run for the fediverse.
Ill be collecting suggestions together and making issues for them in the repository for myself or some other contributors to work on (the projects open source so anyones free to contribute! https://git.sc07.company/sc07/canvas Feel free to reach out to me and I can help get you set up with the codebase)
21
122
3ish hours left for canvas 2024!! also what countries are participating
(social.fediverse.events)
3 HOURS!!
https://canvas.fediverse.events
i would also like to know what countries have participated this year!
i'm planning to sell canvas posters to help fund the project and any future events i would love to run
stickers for the following instances will also be sold to support them:
- mastodon.world
- toot.community
- blahaj.zone
- lemmy.world
- toast.ooo
- Canvas 2024
i've spent a little over half the last year to rewrite canvas from the ground up and it's been very very fun running the event so far, stressful, but fun :)
if you're interested in getting a print, drop your country below so i can calculate everything and make sure it's available
if everything goes to plan the prints should be available after the event ends π€
πππ - grant
Microblog: https://social.fediverse.events/@canvas/112793526386602984
![](https://social.fediverse.events/system/media_attachments/files/112/793/514/399/535/934/original/25471e97c7c22928.png)
22
As part of an update that was just pushed you can now enable "New Pixel Pulses" which will make a little circle for a bit surrounding any new pixels that get placed onto the canvas
You can use this to see where activity is happening on the canvas
This was originally made as a userscript by soda_cans and was adapted by me into the actual codebase
![](https://programming.dev/pictrs/image/6881b4aa-4c53-4371-b7f9-bb940cc2ed28.png)
24
I'm putting this bad boy on the top left inside the UK flag, need help.
![](https://lemmy.world/pictrs/image/35a2723b-d720-4c59-937e-ad06ff7fda90.png)
25
Currently on the canvas theres a bunch of blank space remaining. This is both due to people using the blank space as part of their design and due to some areas not having backgrounds yet!
(The green shade in the attached image is the blank canvas filter, you can find it in settings to see whats blank space and whats white)
As we head into the last part of canvas if you have any spare pixels you dont know what to do with you can drop some to help out some of the backgrounds
Some example locations:
Bi flag (around y=437)
Gray lattice (around 472, 461)
Whitespace in OSU (around 313, 265)
Void (around 709, 218)
Foliage (around 581, 493)
Yellow (around 74, 469)
Blue and Teal (around 271, 201)
White stripes in the upper flags (around 350, 46)
If you have any others post them in a comment
![](https://programming.dev/pictrs/image/845d253e-cb5f-4aea-afe9-18d4d3f9529c.png)
view more: next βΊ