Canvas

2091 readers
1 users here now

Canvas β€” The Fediverse’s r/place


2024 Concluded!


Get a print!


Links

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:

Repos:

if you would like me to host it on a subdomain of .fediverse.events post a comment below explaining your project

2
 
 

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!!

https://sc07.shop/

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 πŸ’ž

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

Canvas Repo - Canvas Timelapse Repo

3
1
[2024] Thank you for participating!! (social.fediverse.events)
submitted 4 months ago* (last edited 4 months ago) by [email protected] to c/[email protected]
 
 

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] πŸ’œ

https://sc07.shop/

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 πŸ”¨

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
4
1
submitted 1 year ago* (last edited 4 months ago) by [email protected] to c/[email protected]
 
 

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:

Data:

5
 
 
6
 
 

https://sc07.shop

Get Canvas 2024 & 2023 prints, and stickers to support various instances!

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)

https://sc07.shop

Instance sticker proceeds go to their respective instance ✨

@[email protected] #canvas #canvas2024 #shop #stickers

9
1
submitted 3 months ago* (last edited 3 months ago) by [email protected] to c/[email protected]
 
 

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
0
submitted 4 months ago* (last edited 4 months ago) by [email protected] to c/[email protected]
 
 

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!

E: streamable didn't offer title change so final1 it is lol, before there was test.mp4 test_x30, test_x2, test_grain, test_1 ...

13
 
 

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
 
 
15
1
Canvas Stats Website (sh.itjust.works)
submitted 4 months ago* (last edited 3 months ago) by [email protected] to c/[email protected]
 
 

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.

Here is the link to the web app.

16
17
 
 

[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:

  1. The ones who don't want to see country flags at all.
  2. The ones who are OK with smaller flags, but don't want to see larger ones.
  3. The ones who want to see a specific large flag taking a huge chunk of space.
  4. 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.

18
 
 

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.

19
 
 

Just from "a quick query" by the admin.

there'll be a better one later, this is just a quick query

20
 
 

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
1
30 MINUTES REMAIN (canvas.fediverse.events)
submitted 4 months ago by [email protected] to c/[email protected]
 
 

GET YOUR PIXELS INNNN

22
 
 

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

23
1
submitted 4 months ago* (last edited 4 months ago) by [email protected] to c/[email protected]
 
 

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

24
1
Canvas now has Dark Mode! (programming.dev)
submitted 4 months ago* (last edited 4 months ago) by [email protected] to c/[email protected]
 
 

Enjoy :)

25
 
 

I'm putting this bad boy on the top left inside the UK flag, need help.

view more: next β€Ί