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