matrix-org / matrix-spec

The Matrix protocol specification
Apache License 2.0
186 stars 94 forks source link

Automatic room picture generation #1533

Open hooger opened 2 years ago

hooger commented 2 years ago

Hello everyone,

Description:

I'm thinking of a feature that would generate a default picture for rooms that do not currently have---like some social media site do---, from the profile picture. I think having profile pictures is important, as identifing rooms based on distinct pictures is easier than based on some 2 letter id (with various colors). With multiple rooms it becomes an even bigger problem. My idea is something like this:

if( room has picture)
  use picture
else
  memberlist = every_room_member_who_has_a_set_profile_picture
  pics = random_select ( memberlist, min(4, memberlist.size))
  new_profile = generate_new_profile_from ( pics )

I think it needs to be done early and shouldn't be updated as it just makes it harder to find the room if it regularly changes profile picture. However it shouldn't be done at the beginning as one may start out with a room with no members, so it is not enough to generate it once during creation. My idea is that the profile picture should be regenerated once a member is added or removed from the room, EXCEPT:

hooger commented 1 year ago

This would also solve an issue when one uses multiple matrix clients. In such situations the same room has different generated profile pictures. If the homeserver implementation would provide one, the same room would look the same in all clients (like using different clients on different operating systems, or on different platforms, like FluffyChat on mobile, but Nheko on desktop).

anoadragon453 commented 1 year ago

@hooger I've moved this issue to the matrix-spec repo as a feature such as this would likely end up in a client implementation, defined by the Matrix Spec.

If you receive positive feedback on this idea and want to move it forward, you'll need to write a Matrix Spec Change proposal and carry it through the Matrix Spec Process.