diff options
| author | Pinapelz <yukais@pinapelz.com> | 2024-10-24 01:11:49 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2024-10-24 01:11:52 -0700 |
| commit | d704be19afb2e4701a1947a28ef4970d0b3acfa3 (patch) | |
| tree | 5366be4c472ef3f7a04dba5a5cf1223a6463c1ad /src/content/blog/the-oshimark-problem.mdx | |
| parent | 96392c73bd5c7ba9f66437205ebcf6c3a1553695 (diff) | |
post: the oshimark problem
Diffstat (limited to 'src/content/blog/the-oshimark-problem.mdx')
| -rw-r--r-- | src/content/blog/the-oshimark-problem.mdx | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/content/blog/the-oshimark-problem.mdx b/src/content/blog/the-oshimark-problem.mdx new file mode 100644 index 0000000..873207b --- /dev/null +++ b/src/content/blog/the-oshimark-problem.mdx @@ -0,0 +1,89 @@ +--- +title: 'The Year 11779 Oshi Mark Problem' +description: 'When will we run out of 2-emoji oshi marks?' +pubDate: 'Oct 24 2024' +heroImage: 'https://files.catbox.moe/8gr7k2.jpg' +--- +import Latex from '../../components/Latex.astro'; + +(This is a problem that lives rent-free in my head) + +The oshi mark is are emoji(s) that VTuber fans will often put in their social media usernames to represent their support for a particular VTuber. These are typically chosen during or before a VTuber's debut stream, you'll often see many VTubers changing their usernames to include them too! + +Seems like a good idea, until you realize that there is a finite number of emojis... + +## Definition +As of writing this there are 3790 emojis in the Unicode standard. I know that platforms like X have may have their own standards (Twemoji), but for the sake of this problem let's assume that we're using the Unicode standard. + +This also includes skin-tones, which may or may not be appropriate to use in this context as well. However, this is just all theory anyways so let's include them and take this as a best-case scenario. + +## Problem +Ideally, VTubers all want a unique oshi mark to represent them. Of course, in the early days of VTubing a single emoji would be enough to represent a VTuber. However, as the industry grows and more VTubers debut, the chances of a VTuber getting a unique oshi mark decreases... + +So the fix is intuitive, let's just use 2 emojis for each new VTuber. This is fine, in fact its the solution we're on right now, but how long until we run out of 2-emoji oshi marks? + + +<Latex formula="\binom{3790}{2} = \frac{3790 \times 3789}{2} = 7,171,755" /> +We then assume that all 1-emoji oshi marks are taken, so add that to the total number of 2-emoji oshi marks and we end up with 7,175,545 VTubers. + +### Predicting Growth +We can predict VTuber growth in a fairly crude manner using Holodex. I wrote a Java wrapper for the Holodex API a while back, so I was easily able to spin something up quick. +```java +import com.pinapelz.Holodex; +import com.pinapelz.HolodexException; +import com.pinapelz.datatypes.Video; +import com.pinapelz.query.VideoQueryBuilder; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class App { + public static void main(String[] args) { + try { + Holodex holodex = new Holodex("API_KEY"); + VideoQueryBuilder query = new VideoQueryBuilder().setTopic("Debut_Stream").setLimit(100); + List<Video> videos = holodex.getVideos(query); + + Map<LocalDate, Integer> dateCountMap = new HashMap<>(); + for (Video video : videos) { + System.out.println(video.title); + LocalDate date; + try { + date = LocalDate.parse(video.published_at, DateTimeFormatter.ISO_OFFSET_DATE_TIME); + } catch (NullPointerException e) { + continue; + } + dateCountMap.put(date, dateCountMap.getOrDefault(date, 0) + 1); + } + + double average = dateCountMap.values().stream().mapToInt(Integer::intValue).average().orElse(0.0); + System.out.println("Average number of debut streams per day: " + average); + + } catch (HolodexException ex) { + throw new RuntimeException(ex); + } + } +} +``` + +The above code takes the first 100 streams that are tagged as a "Debut_Stream" and then finds the average number of debut streams per day. + +Running the code outputs: +``` +Average number of debut streams per day: 1.9565217391304348 +``` + +Let's just call it at 2 new debut streams per day roughly. This means that we can expect 730 new VTubers per year. + +There are some numbers online that suggest that there are around [https://blog.gamesight.io/vtuber/](49 500 VTubers as of June 2023), so let's +estimate that there are probably around 52 000 VTubers by the end of 2024. + +So that means 7,125,545 unique 2-emoji oshi marks remain assuming all VTubers have an oshi mark: + +Using the growth rate previously calculated: This means that in 9754 years, 4 months, and 2 days we will run out of 2-emoji oshi marks... (oh no!) + +### Conclusion +On February 26th, 11779 we will run out of 2-emoji oshi marks, and will need to start using 3-emojis instead. So sleep well at night knowing that we have a long time before we run out of 2-emoji oshi marks.
\ No newline at end of file |
