44

There are many rumors running about the winter bash site. Many voices of an easter egg hidden somewhere. Beards growing overnight.

Yet, one of the legend lies unspoken. The legend of an unicorn. A weaponized pony. A glimpse of glittering in the snow.

Winter Bash logo with the purple mare unicorn

Many have searched for the pony. Fewer have returned to tell its tale.

So now I start the hunt, for only a day remains. Find the glitter, and let the snow fall.

(Trad: how is this easter egg triggered? random? time related? any idea anyone? I notice that pressing CTRL draws snow to the pointer instead of repulsing it, but this is as far as I got).

PS: since we are at it, let's add a little subquestion. Who is the unicorn? based on the color my guess goes to Twilight Sparkle.

Twilight Sparkle

But I could be wrong. Still, there is a resemblance.

Edit: just to add meme to meme.

ユニコーンは
雪にきらめく
の冬の兆候

Yunikōn wa
yuki ni kirameku
no fuyu no chōkō

The Unicorn
glittering in snows
sign of winter

10
  • 2
    Did you try the usual Konami keys?
    – Tim Post
    Jan 3, 2013 at 11:12
  • 2
    Tried them the second the site went up. And while we are at it, I still would like them to trigger the glorious unicornify script here on meta. ^_^' . Didn't work - but I found the pony at random, after leaving the page on. So I belive it is time related. Or RNG blessing related - which in turn would need for a ultra-rare shiny version
    – SPArcheon
    Jan 3, 2013 at 11:17
  • @TimPost - the logo is formed even if you don't press control ^_^' - you mean Bubbles, right?
    – SPArcheon
    Jan 3, 2013 at 11:20
  • And yet we wonder. Is the downvoter telling me that he don't think the unicorn is Twilight or that he doesn't like unicorn at all? Come on, have fun - It is the last two day of the winter bash after all, a little easter egg hunt cannot hurt.
    – SPArcheon
    Jan 3, 2013 at 11:53
  • Don't mind the downvote. Scrooge is about, and anything smelling of WinterBash will get a downvote as the SE equivalent of a mumbled "humbug". You may even receive a 'Too Localized' close vote, if you are really lucky! Jan 3, 2013 at 14:13
  • At last it won't end like the Chtulhu egg in chat question, closed as duplicate of a question that didn't mention that ipotetical easter egg ^_^
    – SPArcheon
    Jan 3, 2013 at 15:22
  • @TimPost - ps, can this post be protected/closed after the Bash is over? I posted this to search for the unicorn and make more people see it (and have some fun while at it...), but after it is all over, there is no need to keep it open. Just please do not delete, leave it to the company of the archived memes - pretty please ^_^
    – SPArcheon
    Jan 3, 2013 at 17:42
  • @hims056, can I ask why you rolled back the closed question disclaimer? I added that hoping it will help to avoid the question begin reopened. Do you feel it is not necessary or there is a simplier way to protect it?
    – SPArcheon
    Jan 9, 2013 at 14:21
  • @SPArchaeologist - That is not the part of the question. So it should not be included in the question. You can add comment instead. :)
    – Himanshu
    Jan 10, 2013 at 3:54
  • @hims056: I agree that it wouldn't strictly be part of the question... but I also belive no one would notice it if put in a comment.
    – SPArcheon
    Jan 10, 2013 at 8:10

3 Answers 3

32

Within the home.js script is the following code (indentation and comments added by me) :

function o(){
    function a(d){
        var e=Math.min(d-b,100);
        b=d;
        y.clearRect(-300,0,w.width,w.height);
        //perform one frame of physics on each snowflake, and draw them.
        for(var f,g=0,h=0;h<t.length;h++) 
            d=t[h],
            d.step(e),
            //f is "the last snowflake I drew before this one"
            f&&!d.target&&(g+=Math.abs(d.p[0]-f.p[0])+Math.abs(d.p[1]-f.p[1])),
            f=d,
            d.draw(y),
            d.p[1]>500/p&&!d.target&&(t[h]=c());
        //Unicorn drawing occurs here
        if(300<=t.length&&2E3>g&&!C){
            B[0]=s(0,0,1,2,0);
            e=D-120/p;
            f=200/p;
            d=420/p-E;
            for(g=0;g<H.length;g++) 
                h=H[g],
                h=new n(
                    {
                        x:e+h[0]/p,
                        y:f+h[1]/p,
                        time:d+g/40
                    },
                    $(j(h[2],"255,196,255")) //the same pink as seen in the OP's screenshot
                ),
                t.push(h);
            C=!0
        }
        I(a)
    }
    var b=v();
    I(
        function(c){
            b=c-(v()-b);
            a(c)
        }
    )
}

I have made some educated guesses as to the meaning of the obfuscated variables.

  • H is an array of x,y coordinates, declared elsewhere, that form a unicorn shape when drawn.
  • t is an array of snowflake objects on the screen.
  • C is a var that is declared elsewhere but never assigned to anything, except within function o. So it is undefined until unicorn drawing occurs, and then it becomes !0. It appears to behave as a hasUnicornBeenDrawnYet boolean.
  • g is the sum of the manhattan distances of adjacent snowflakes in t.

The crucial condition to make the unicorn appear is if(300<=t.length&&2E3>g&&!C). If my guesses are correct, this translates to "If there are 300+ snowflakes, and they are very close together, and no unicorn has been drawn yet, then draw a unicorn".

Although the pink color and unobfuscated H array are smoking guns, I am not completely confident in my conclusion. I have not personally been able to make the unicorn appear, even after carefully gathering all the snowflakes while holding control. And the OP mentions the unicorn appeared for him after waiting a long time. But the unicorn should never appear, as long as g is too large.

8
  • 2
    Takes about 30-40 seconds of gathering snowflakes to get the Unicorn.
    – user7116
    Jan 3, 2013 at 15:20
  • 20
    Great work, all your conclusions are absolutely correct -- and that JS is hell to deobfuscate :). Regarding the "even after gathering all snowflakes", there seems to be a rarely appearing bug causing a single snowflake to be somewhere way outside the screen, causing the distance sum to never go below the threshold. I couldn't reliably reproduce it, and since it's rare and really only affects the easter egg, I didn't dig too deep. Nice work!
    – balpha StaffMod
    Jan 3, 2013 at 15:24
  • 1
    Yay i.imgur.com/Y75O9.png
    – Doorknob
    Jan 3, 2013 at 15:27
  • I just got it on my second try :-) I guess I just needed to refresh the page to flush out the bad snowflake that @balpha talked about.
    – Kevin
    Jan 3, 2013 at 15:27
  • Also, interesting aside: while source diving, I came across return window[a+(a?"R":"r")+"equestAnimationFrame"]. I was initially very excited to find a reference to an "equestrian animation frame"! But it turned out to be a red herring (or just poor reading comprehension on my part)
    – Kevin
    Jan 3, 2013 at 15:35
  • @Kevin actually it will return a+"RequestAnimationFrame" if a exists or "requestAnimationFrame" if it doesn't.
    – Doorknob
    Jan 3, 2013 at 15:37
  • @balpha - not so rare. I had the felling it was something similar, but after the third attempt I assumed I were wrong.
    – SPArcheon
    Jan 3, 2013 at 15:40
  • 3
    I tried this a number of times (gathering flakes for as long as four or five minutes) and never got it; I guess I'll have to try again tonight.
    – mmyers
    Jan 3, 2013 at 16:05
6

I got my UniCorn 2 Here it is enter image description here

5
  • All hail the unicorn. For the unicorn will bring the glitter on all is followers.
    – SPArcheon
    Jan 3, 2013 at 11:28
  • BTW, from its position, I would say that our unicorns are actually the same one. You see, it started on the left and is going to the right. Maybe it was the Cupcake Is not a lie hat that summoned it?
    – SPArcheon
    Jan 3, 2013 at 11:38
  • @SPArchaeologist I got the cupcake, but didn't notice a unicorn. Then again (as you've guessed) I didn't spend a lot of time on winterba.sh itself, other than checking the leaderboards from time to time.
    – Tim Post
    Jan 3, 2013 at 11:58
  • @SPArchaeologistyes it seems unicorn is heading towards cupcake but what i guess is that it will draw unicorn just below the area where you have collected the sparkles
    – Usman Kurd
    Jan 3, 2013 at 12:01
  • I don't see any unicorn this year. :( Jan 3, 2014 at 6:44
3

Because the first time I tried to get the unicorn it appeared so quickly I assumed it want the special Easter egg I spent nearly four hours making the unicorn appear just before Christmas, to see if it would do anything in certain positions, such as horn touching the logo, nose touching the tree etc.

You can easily get it to appear just by holding down ctrl and waiting, but you can speed things up by moving the cursor towards snowflakes.

Turns out it is also possible to collect all small snowflakes while avoiding the big ones, and vice versa but it's hard work!

Not the answer you're looking for? Browse other questions tagged .