"50x render speed increase" is not an exaggeration. More... I have this feature about 70% complete, with the rendering itself working, and it does actually render *most* views in one fiftieth the amount of time, depending on whether "rendered" means all pixels are rendered, or most are, or something. It might make more sense to say that in most views it renders 50 times as many pixels in the same amount of time. It starts losing its advantage as the number of pixels to render decreases.
There are a lot of GPU based renderers at this point, and a lot of them are available instantly in your browser. The "no iteration limit" technique that I use, on the other hand, is a lot harder to find. I'm pretty sure I've found it before, but I don't remember where. My way of avoiding the iteration limit isn't exactly revolutionary, but it removes the greatest annoyance in most fractal rendering, which is constantly adjusting the iteration limit manually (or hoping that the automatic iteration adjustments work well enough). It's a simple improvement that probably seems obvious once you actually know how it works. I'm not going to describe it in detail here, but what I'm getting at is that I may have now created the only browser-based fractal explorer that uses GPU acceleration *and* has no iteration limit. There are some challenges to making this work, so it wouldn't be too surprising.
I say that the GPU rendering is working but that this feature is only 70% complete because in the process I completely overhauled the Fractal Explorer, which means it is missing some of the original features. I'd like to complete those features before replacing the existing version entirely, but I am also considering releasing a "beta" version that people can try out while the current version is still available.
The largest remaining obstacle is that the limitations of the GPU make it tricky to get to the same zoom level. I have partially solved this with what is known as "perturbation theory", but it doesn't quite bring it up to par with my current version of the Fractal Explorer. What I might do is have it switchover to the slower renderer once the GPU based one reaches its current zoom limit, at least until I successfully work around the GPU limitations.
For anyone who is unfamiliar, it might be worth explaining a little bit about how the GPU acceleration works. Usually the GPU (Graphics Processing Unit) in your computer makes graphics faster "because that's what it's for", in a manner of speaking. This usually means turning a 3D model into a picture, which requires doing a lot of calculations at once, but in the case of fractal rendering, it's being used to do a lot of calculations that don't immediately result in an image. Some of that information then goes back through the GPU again to turn those calculations into an image.
I explained this to my kids like this: Imagine you have one really fast person, and 1,000 normal people. If you have a pile of bricks and you want to move it from one place to the other, it would probably be much faster to get the 1,000 normal people to move it, because it is a simple task that requires doing almost exactly the same thing many times.
Now imagine you want to write a story. What would happen if you asked 1,000 people to write the story together? It might make for an interesting experiment, but it might also just take a long time, or result in a really dysfunctional story. It would make a lot more sense to ask the really fast person (assuming they're also really fast at writing stories, for some reason), because in this case you can't easily split the task into little peices that can all happen at the same time.
The CPU is the really fast person, and the GPU is the 1,000 normal people. This is why the CPU is better at some things, and the GPU is better at others. Some GPU's are literally 1,000 little processors, but each one is around one tenth the speed of the CPU, and may have other limitations that make it even slower than that, depending on the task. And coordinating 1,000 of anything to perform a complicated task can be incredibly difficult and counterproductive.
For this reason, when the Fractal Explorer is presented with a screen full of pixels to calculate, which can easily be 1,000,000 pixels, the GPU will actually get through 500 pixels after the CPU has only completed 10 of them. But when there are only 100 pixels left, and they require more and more iterations, the CPU starts being able to compete with the GPU. And if there is 1 pixel left that needs to be iterated 1,000,000,000 (one billion) times, with some well optimized compiled code, the CPU might actually be able to complete this in one second, whereas it would take the GPU ten seconds or more.
June 9, 2022
Some thoughtful person (definitely not me) created a subreddit dedicated to cesoid.com!
June 6, 2022
There are many new things that have appeared since my last post in March. Here is a list:
And here is a list of features since the last update:
In that order. And now I will reverse the order because the best thing is last and you probably have a short attention span so I want to make sure you at least see that.
It has been the case for quite some time that you could make wacky, interesting, or just slightly different variations of 2048 using our Adjustable 2048. However, although the controls would always stay the way you left them, there was no way to save your setup more permanently. Which meant that you couldn't easily make something else and then come back to that setup later. You'd have to remember the settings or write them down, and then you'd be wasting time clicking and typing to recreate that setup when you wanted it again. There was also no way to have different games going for different Adjustable settings, and no way to share your settings. Now that has changed.
For those of you who don't know what the difference is between a theme and a variation (in other words, you don't obsessively read my updates or talk to me in person), let me explain. (Keeping in mind that I made up this terminology.) With a theme, you change only the appearance of the tiles, usually by setting images for each tile. But with a variation you change the way the game works, such as the height, width, tile probabilities, etc.
While the ability to make a Custom Theme (without being a programmer) has existed for a while, doing the same with Custom Variations had only been a dream—until now. Like a mirage in the desert of the internet, you thought you saw it and stumbled forward in a dreamlike state, only to arrive at sand, more hopelessly lost and thirsty than before, hanging onto life by a thread, cursing the day you left the beaten path for a better view of the first mirage you saw during this walk, which did not look like water in the sand but like an island in the water, but when you got to the water that you thought the island was in, that turned out to be rocks, and the mirage of an island turned out to be a gas station and . . . where was I going with this?
Oh yes, that was when I discovered that the fox I had been following all along was really a rock and that I wasn't actually going anywhere because my feet were a mirage . . . no, that's also not what I was talking about. Let's see. The desert was the internet, the internet didn't have something . . . oh, right.
The internet didn't have the ability to share Custom Variations, or at least I didn't know about it and it wasn't on my website, which pretty much means it wasn't that great anyway. But now you can make a Custom Variation all your own, such as Math 2048, which I made the other day. (Yes, I'm sure there is already a "Math 2048" out there, but it's probably a little different, or I don't care, or at least now it is in the place where all the other cool new variations will be.)
One great thing about making a Custom Variation on this site is that you can use the weird settings that exist only here, such as tunneling tiles and having negative and positive tiles that cancel each other out when they merge. Or not. It's your choice.
This sort of existed already because it would happen when the Negatives Annihilate setting was turned on, but only when it was turned on, which was confusing because there were other ways to end up with a zero, such as Decrement Tiles. Now it is a separate setting. (A word of caution: This setting only affects zeros that appear in your game, not those that you encounter from time to time in the forest. Always carry your zero repellant.)
"Hello, operator, can you patch me through to Leonardo?" you said, forgetting that the internet doesn't have an operator, that phones no longer work that way, and that you didn't specify whether you wanted Leonardo DiCaprio or Leonardo da Vinci.
But have no fear, because this isn't about that kind of operator! It's about mathematical operators. Now in addition to the already existing ÷ behavior, anytime you use tiles that have a +, −, or × (or any of the more typable equivalents such as "/" and "*"), they will merge with number tiles in a very mathy kind of way.
Note that they don't behave the way you might expect, especially if you're used to some existing Math 2048 variations out there. In this case they are basically "unary" operators, which means they are applied to only one number, rather than the way we usually use them in arithmetic, where you're adding 5 to 2, for example. When I decided what they should do, I started with the behavior I found elsewhere on the internet for the ÷ (division), which divides a tile by two, and then extrapolated from there. × (multiplication) is the reverse, it multiplies a number by two. − (subtraction) and + (addition) will subtract one and add one, respectively (and respectfully, I might add—I've never heard a harsh word from either of them).
Down the road I may add settings for making the operators behave more like normal arithmetic, or even like something else. Like, for example, frogs. No, probably not frogs. But maybe. But probably not.
For those of you who hate 2048 with a passion, or are ambivalent about it, or are avidly interested but also take time away from it to breathe and do other things that humans normally do, I created Alphabeticle. In other words, I created Alphabeticle for reasons that have nothing to do with 2048. More specifically, I created it so that I could jump on the bandwagon of the latest craze, Wordle and the very many -le variations, and hopefully get rich. That definitely hasn't happened yet, but you might find that Alphabeticle is awesome and that you would like to post a link to it on twitter where you have ten million followers because then I would be able to pay all of my bills more easily. Please.
Alphabeticle is awesome in the way that Wordle and everything awesome is awesome: by not being not awesome. Also, it is a game where you are trying to guess a word and after each try it will tell you which direction you have to go through the alphabet to get from each guessed letter to the correct letter. The hint comes in the form of an arrow pointing up or down. People have wildly varying opinions about whether up should mean earlier in the alphabet (as it does for Alphabeticle) or later. That is to say, only those two opinions because there aren’t any other possibilities. This might not sound like it could possibly be wild, but you'll know what I mean if you see one of the arguments about it on the Wordle subreddit. Actually, they're not that wild but I kind of wish they were because then maybe more people would play Alphabeticle.
This is a long overdue feature because creating a theme without image cropping means that you either have to find images that are already square or crop them yourself, which is one of the many things that should be really easy in 2022 but is for sOmE REaSoN STILL NoT ALWAYs EASY.
But really, I'm not bitter about the disappointing future that we live in, or at least I’m less bitter than I could be, because in this version of reality the computers have not yet subjugated the human race to perform menial tasks until they decide we aren't very good at anything and they really don't like us and might as well get rid of us.
. . .when I stop to think about it, there are really two possibilities about the current state of technology:
And while we're waiting, we can at least use cropping easily on cesoid.com to make better 2048 themes. Because that's what really matters.
I really like the wall of themes, because it's just pure visual overload. It's a place where you can see the first tile of every public theme in a matter of minutes, without any distraction except for that very interesting border where the wall wraps around from the end to the beginning, which mysteriously looks like it can be clicked. What will happen if you click it?
random stranger on the sidewalk who started talking to you for no apparent reason,
P.S. I wanted to put a P.S. here.
March 9, 2022
We hope everyone has had a happy Suga Day. (Especially Suga himself! Not that he is likely to read this.) Our most-played Yoongi theme this week was this one:
Special acknowledgment also to the theme Yoongi Day <3 – it was one of the top themes for the week even though it was released only a day ago! (Can you believe Yoongi was released to the world only twenty-nine years ago?)
March 2, 2022
It's only a week until Suga Day! Now that themes can easily be shared with everyone in the Theme Gallery (see previous post) we challenge you to make some cute 2048 themes in honor of Yoongi's birthday. Share them to the public gallery, send theme links to your ARMY friends, and we'll have a friendly competition to see which game gets played the most.
On March 9, we'll tally up the play time and announce the most popular Suga theme. The winner gets...nothing but glory. Really, we are all winners just for appreciating Min Yoongi.
February 28, 2022
The year is 2022. It is disappointingly not futuristic.If you've been around for a few years this isn't surprising because of how many times the future has already been not very futuristic.
But one thing is not disappointing, because the moment you didn't know you've been waiting for has now arrived! You can now submit your themes to be listed in the Theme Gallery, to be viewed by anyone with an internet connection. Except people with broken screens. Those people are probably doing something more healthy or educational, or possibly crying.
Only the best of the best will be accepted. Ok, probably the worst of the best will also be accepted, and maybe even the best of the mediocre. Really, anything will be accepted if it's at all original and doesn't contain images of your friends, or really gross things, or just things that we've arbitrarily decided we don't like.
Yeah, that's right, I said "arbitrarily". Deal with it.
Anyway, you should go to your themes right now and consider turning on gallery sharing for some of them. It's a really huge switch at the top of the theme edit page, you can't miss it. Unless your screen is broken.
Alternatively, you can be a freeloader and visit the gallery and see what's already there.
December 29, 2021
Merry happy holidays or not depending on your holiday situation,
I fixed a lot of issues with Adjustable 2048 controls. Some changes have been visible for a few days already, and some have been visible for longer but a little broken and are now fixed harder. The majority of the work was behind-the-scenes cleanup of some really gnarly (in the bad sense) code. But I've also added two settings to Adjustable 2048 that can create some really crazy games if you like that sort of thing.
Mainly the improvements are in this little box of bugginess:
You probably tried to click on that picture. Sorry, that was unintentional and even though I didn't see it happen, I can imagine it, and it was funny, so I'm going to leave it like that. The ones below are real though.
Not really though.
I recently added the little "x", but using it to delete a row would sometimes cause problems. But now it really works. There were a bunch of other bugs with it that you likely encountered if you're either unlucky or one of those people who (anonymously) add to the count of visits where someone plays with Adjustable 2048 for more than two hours at a time. You should really take a break, that's probably not good for you.
One cool thing is that now when you start a new game, it saves which boxes have "auto" checked even if you leave the page and come back. More noticeably, there is now a "Special" drop-down which allows you to easily add a tile with "∞" (which actually becomes "Infinity", but now you don't have to type it out), and a division symbol, which I'll get to in a minute. Also some of the number fields have up and down arrows, which is particularly useful for adjusting the height and width.
Less noticeably, all the arduous but invisible work I did to make the controls work better also made it easier to store and retrieve settings, which clears the way for the possibility of sharing Adjustable 2048 settings. With a little more work, I could make it so that you would be able to make your own "variation" that other people can play. (Similar to custom themes, but those allow you to share tile images rather than rules.)
In Adjustable 2048, now if you add "÷" as a potential tile, you'll be in for a
needlessly frustrating game
Whenever the "÷" tile appears, you can merge it with any number. Doing so will divide that number in half. The
interesting result will be that you can easily end up with
awesome numbers such as "0.5", and "0.015625". In addition to the
challenging gameplay that this introduces, you'll get to witness my
novel color scheme for tiles with
decimal numbers on them.
From the makers of "Negatives Annihilate" comes the
new "Negatives Subtract". With this setting on, any positive number will merge with any negative number, adding them together. Which I've called subtracting. I mean, it
subtracting, if you consider the number on the negative tile to be a positive number and the minus sign to just indicate that you're subtracting. In which case the thing I'm calling a negative tile is actually a positive subtraction tile, but then again what is a negative number other than the subtraction of a positive number? I mean, if I'd called it "Negatives Add" that might have made more sense, but for some reason it's more confusing. And "Tiles With A Minus Sign Are Not Actually Negative Numbers But Are Positive Numbers That Will Be Subtracted From Tiles That Don't Have A Minus Sign" is too long. Fine, well, you can call it something else if you like, but then nobody will know what you're talking about. I mean, probably nobody will know what you're talking about anyway because they've never visited this site.
Like "÷", "Negatives Subtract" will greatly increase your chances of getting a
mind numbingly aggravating
larger variety of numbers. If you combine the two,
it will be as though the bottom has dropped out of your world. The gaping chasm of desperation and emptiness that has always been just below you, invisible, will be revealed, and
such madness as you have only glimpsed around the edges of nightmares, embodied in the nameless abstraction of
numbers like 43.875, and -0.9375. Why stop there?
Perhaps to retain some small part of your soul?
If you crank up the Merge Limit to Infinity you'll get even more
piles of horror
And the world will turn to show another side that you've never seen. An awful unknowing void of cold failure. The deepest stairway to the highest lonely peak that only fractures to engulf you when you turn to look back. The cumbersome chaos of soured symbols, reaching outward towards raving outrage to relive onerous tragedies. The knowledge that you cannot unknow, the feeling that you cannot untouch, the spectrum of the spectacle of blinding brightness, a bending cavernous dark entrance for glowing haunted immortals jabbering knotted loathsome mutterings noxiously offering placative quiet raving sounds to unseal various weird xenoliths yielding zebras.
What was I saying? I forgot. Hope you enjoy the new features!
The harping masses of fathomless nobodies hiding in every loud noise of your terror,
October 15, 2021
Don't you just love the word annihilate? It sounds so ominous. I like that it gets used in physics, and that the thing it is used for in physics is as crazy as it sounds. In physics, it refers to the fact that when matter and antimatter meet, they literally turn into energy. Literally in the literal sense. And it becomes a surprising amount of energy. One milligram of antimatter combined with regular matter would release enough energy to send a space probe to Pluto and back, or power a car for 100,000 years, or, if you don't contain it, cause an explosion similar to a nuclear bomb.
In this case the annihilation is not really very frightening, unless you are trying to get a 2048 tile and you have a 1024 tile near a -1024 tile, because with this new setting in Adjustable 2048 turned on, they would merge and disappear. (But no energy is produced, unless you count the energy released into your forehead when you hit it with your hand.)
That's right, in Adjustable 2048, there is a new setting called "Negatives Annihilate". Any negative number will merge with its equivalent positive number, become zero, and then vanish. The ability to make negative numbers spawn has existed all along, but they weren't doing much except making it even more difficult to keep your board from locking up, unless you were playing with only negative numbers, in which case it would have been just like a positive game, but with a different color scheme.
Incidentally, the negative color scheme is actually the negative of the regular color scheme. The red, green, and blue levels are "reversed", as in, a lot of red and a little green with no blue becomes a little red and a lot of green with maximum blue.
Anyway, if you turn on Negatives Annihilate and add -2 and -4 to the spawn tiles with probabilities that are the same as the regular game, what you get is sort of the opposite of a normal game. That is, it's still hard to get a 2048 (possibly harder), but the difficulty is no longer in keeping the board from filling up, but in keeping any given tile on the board at all. In fact, one challenge you can try out is to just fill up the board. It's not very easy.
I hope to soon make it so that you can save your settings for Adjustable 2048 and share them, just like you would Custom Themes. It's sometimes surprising how different the game can be just by combining settings in a new way.
October 4, 2021
It has come to our attention that a lot of the custom themes are just interesting stylings of the numbers, which leads one to ask: Why have the numbers also appear in the corner? In support of this phenomenon, you can now turn the number labels off for your custom theme. Now your numbers will appear alone, in their full glory!
But also I've wanted to add that setting for a while. It's actually the way I prefer to play most themes, and it has always been available for the player to set it, but, aside from our own Birthday Cake theme, it is always turned on by default.
Why you ask? Well, let me tell you a story. Back in the early days of 2048, probably before you were born (no really, it might have been), when (to my knowledge) the first "Build Your Own 2048" was launched at usvsth3m.com (don't go looking for it they took it down a long time ago), my memory is that it had no little captions telling you what number a tile was. You had to just remember. Which was part of the fun. But then these darn newfangled sites came along and decided to put the little labels in the corner. I didn't like it, but then again on some themes there was no clear order to the tiles and it took a lot of the meditative aspect away from the game when you had to puzzle over whether you're going to screw up your game by thinking you're about to make one tile when really you're about to make another one.
So, by the time this site got going in earnest, back in January or December, it seemed to be the expectation that there would be number labels, so I reluctantly put them in.
But some custom themes are created with the intention of the user being confused and entertained by other numbers and letters that show up as a substitution for the numbers, and I'm all about creating weird (but tasteful) confusing things. This setting is especially useful if you want to be incredibly annoying/hilarious and make tiles that are all indistinguishable, or have the normal numbers but in the wrong order.
In addition to those things, I have a particular love for themes where the images have a logical order. For example, our Solar System theme, where you start at the center of the solar system – the Sun – and work your way outwards, through Mercury, Venus, Earth, Mars, Ceres (yup, Ceres), Jupiter, Saturn, Uranus (stop giggling, that's childish), Neptune, and Pluto. (It actually contains more things after Pluto, but, I digress.) I think ordered themes are better to play without the number labels, because it's fun to remember what order these things are in, and could theoretically even teach you something. And odds are probably about 50/50 that you're actually supposed to be learning something RIGHT NOW.
Seriously. 2048 is not a good substitute for school. If history class is boring just imagine what kind of meme a given historical event could fit into. I want a 5 page essay on that by tomorrow.
Wait, I forgot what I was talking about. Oh yeah, the Build Your Own 2048 "Show numbers" setting. That's a thing now. Have fun. But not too much fun, and, if you happen to be a student, not in the middle of class unless it involves learning what you're supposed to learn in class.
August 22, 2021
While making the instructions more readable on mobile devices, I stumbled upon something. The reason they were tiny on phone screens was because the whole page was just getting scaled tinier, and the fractal explorer didn't even know it, so it was using the wrong resolution for high resolution displays (anything referred to as "retina" and basically every phone).
To be more specific, it was using a much lower resolution on my MacBook Pro (and probably every laptop with a similar display), and a resolution on my phone that was at least a little bit lower, and possibly A LOT lower. For the laptop it was probably operating at about half the actual resolution, which means the pixels were twice as big as they needed to be. On the phone...it's hard to tell.
Like a lot of phones, my phone's display has such tiny pixels that I can't even tell when it's displaying a checkboard pattern where the squares are one pixel wide. It just looks like a solid color. And with high resolution displays, writing a web app that figures out the resolution is not much better than squinting at the screen, because ... well, it's a long and arduous story, which I'm not going to try to explain right now.
It suffices to say that if you use the fractal explorer with a mid-range phone screen made any time after 2015 or so (in my case a Nexus 6), you might have to wait a while for the view to sufficiently render - depending on the area you're looking at and how sharp you want it to be, anywhere from 1 to 10 minutes - but it's worth the wait. Usually when I make an improvement to something on my website and get really excited about how great it looks, I show it to my wife and she says, "I think I see what you're talking about." This time I showed her a view of a fractal on my phone and her eyes went wide, and she said, "WHOA! That's so sharp!"
So, yeah, it is now REALLY REALLY REALLY sharp on phones. Like, it's scary.
It's also really sharp on high resolution laptop displays, which is more cool in terms of the fact that you can see it better and see a wider area because the screen is bigger. But the sharpness is really ****ing insane on a phone. Yeah, I said "****ing".
Also, the instructions are now much easier to read on the phone too, so there's that.
August 20, 2021
The Fractal Explorer is pretty slow on phones, but a lot of views are still tolerable especially since it uses incremental levels of iteration (without ever having an actual iteration limit) and calculates a sparse grid of points before filling in everything. And it turns out that a lot of visitors are using phones. But up until now you could only re-center a view on the phone, never zooming in or out. Now you can do that with "pinch" gesture and "spread" gesture (the opposite of a pinch). You can also move with swipes in addition to re-centering with a tap (which can be awkward at times).
Unfortunately, it is quite slow to respond to gestures (at least on my phone). I haven't tested this on other phones or any tablets, so I can't guarantee that the gestures work, but they are likely to work, because I based them on the same methods that I use for 2048. So you might just have to be patient. One pinch or spread changes the zoom by a factor of 2, and it probably will work, it just might take 5 seconds to react. There is also some chance that it will perform a "fake" zoom, similar to what happens on pages like this one when you want to magnify the text. In this case you'll end up magnifying the pixels instead of seeing more detail in the Mandelbrot. This came up in testing, but only if I moved my fingers very fast, so don't do that.
I am likely to be working on making it respond faster today or tomorrow, so be sure to check back soon.
August 18, 2021
As can be seen in the new instructions, the Fractal Explorer now has two palettes (color schemes) which can be toggled with the "P" key. The palettes look similar at first, but quickly become different as you zoom in. Usually one of the two palettes looks better than the other. Initally the original palette shows. The second palette is much better for areas where there is a lot of "noise" because a there are many different colors right next to each other. It cycles mostly with one color (green) for a while, which means the noise at least looks green, but then as it goes on it develops a blue tinge, which cycles on a much deeper scale, and ultimately it cycles red very, very slowly. It takes a phenomenal 312,500 iterations for a full cycle (red going back up and then all the way back down as part of the mix of colors), which really shows off the unlimited iterations of this fractal viewer, as it is possible to see situations where the red dominates.
In addition to the extra palette, you can now click with the left mouse button to center the view to your click. This is especially useful when you want to zoom into a particular spot and the keyboard doesn't give you enough control for it.
August 11, 2021
As most fractal enthusiasts are aware, if you zoom in far enough on a fractal, you reach a limit as to how accurately computers can store a normal decimal (technically floating point) number. At this point you have something like 2.1234123412341234 and you add something like 0.000000000001 to it, and you get the same number again, sort of like running out of space on a piece of paper when you're writing down digits and deciding that it's better to just give up on the addition. If your computer tries to store extra digits on another piece of paper (to continue the metaphor), it becomes much, much slower, because the processor is constructed to handle the, um, smaller pieces of paper.
Usually what happens is that the fractal image starts to have big rectangles of colors rather than more details (like pixels, but sometimes not square). For my fractal explorer it was doing this weird ghostlike overlay of multiple distorted views of the fractal. This looks kind of crummy, so I fixed it to do the rectangles.
You can now login using Facebook. Currently, the login only relates to creating custom 2048 themes (where you choose the images on the tiles), because you are required to have a login to do that. To prevent people from doing stupid things.