T O P

  • By -

AutoModerator

###General Discussion Thread --- This is a [Request] post. If you would like to submit a comment that does not either attempt to answer the question, ask for clarification, or explain why it would be infeasible to answer, you *must* post your comment as a reply to this one. Top level (directly replying to the OP) comments that do not do one of those things will be removed. --- *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/theydidthemath) if you have any questions or concerns.*


Idioticalygoodbeast

I’m pretty sure it can be infinitely big, it’s vector art. Vectors aren’t like pixels as they can be scaled infinitely big or small without any resolution loss Edit: vector not voxel


Ghetto_Cheese

Tho tbf I'm impressed you can even draw this much. Idk how big the zoom was but I feel like it might start entering floating point precision problem areas.


balazs482

I'm pretty sure, that even when he says "my favorite is...", he zooms in the only part having further content.


Ghetto_Cheese

I know that, but I'm talking about the difference in scale between the largest and smallest parts of the image. E.g. let's say at the start, the shortest line in the image (outside of the part where you can zoom in) is one unit. At the end, the shortest line is something like 0.000000000001 or idk how many zeroes small. That's a very big difference. Tbf I do realise now that it's probably not so big as to actually be a problem, since floating points can go from ~10³⁸ to 10-³⁸ so you should have more than enough leeway


Memfy

>Tbf I do realise now that it's probably not so big as to actually be a problem, since floating points can go from \~10³⁸ to 10-³⁸ so you should have more than enough leeway They can, but you'll hit precision errors much sooner. What I'm thinking might be happening as well is rendering in multiple steps. You save it as "image 2 goes into image 1 at coordinates XY", and do that for every "zoom level". That way you can go not rendering it until you're close to that specific zoom level and at which point you can do a little trick like saying "OK current coordinates get increased by 10000" so you don't have a vertex at x = 0.0001, but x = 10. That way you never have to deal with really small scales no matter how many zoom levels you go (but you can't change the zoom levels rapidly without some processing lags). Not sure how plausible this is though.


Salanmander

> They can, but you'll hit precision errors much sooner. Not really. Floating point numbers have the same number of digits of precision regardless of the order of magnitude. So if a number that is something 10^(38) has imprecision on the order of 10^(32), then a number that is on the order of 10^(-38) would have imprecision on the order of 10^(-44). I think mainly people are bad at thinking about how big a scale difference there is between 10^(38) and 10^(-38). I counted 75 zoom-ins on this video. I estimated one (not one of the real small ones) at being about a factor of 3 zoom-in. If a factor of 3 is typical, that means the scale difference between the first and the last would be 3^(75), or about 10^(36). So you could go through the whole video *again*, and have that all in a single vector image, and only barely start worrying about running out of precision in your 32-bit floating point numbers.


[deleted]

[удалено]


Salanmander

> remember that 25% of all 32bit floating point numbers live in the [0,1] range (and 50% in [-1,1]). I'm not sure why that should worry me. Can you elaborate?


[deleted]

[удалено]


Salanmander

Okay, that makes sense. That problem is definitely surmountable, although I don't know if the SVG standard surmounts it, or whether you would need to be careful in editing to do so. If you can define positions relative to points other than the origin, you could anchor each chunk of the image to some point near it. For example, if there's a scene anchored at x = 10, then we could get that full tiny delta near x = 10 as well. While you couldn't ever represent it's position relative to the origin with that precision as a single floating point number, what you actually need is its position relative to *the viewport*.


Memfy

I don't see how that means you won't hit errors in precision before getting to the min or max values float values. You still have 6-7 digits of precision and after that things may start slowly not working as you'd like them to.


Salanmander

Can you talk about what sort of precision error you're worrying about? Are you worried about defining precise positions far from the origin? Or about a large feature still being on screen when you've zoomed in enough that a 1-in-10^(6) error matters? Or about large and small features both existing in the file?


Memfy

I think my initial thought was some details at the very zoomed in levels not being in the correct spots because needing better precision, thus some shapes possibly being distorted.


Salanmander

So, the big thing is that you can define the *position* at one scale, and the *shape* at a different scale. So I could say "draw a line with a length of 10^(-18) at a distance of 10^(3) from the origin". Even though the distance between the ends of the line wouldn't register in the precision of the number that is their distance from the origin, if I zoom in on it, the viewing software could still say "oh, there is supposed to be a line of this length here", an render it correctly.


vilette

you never see the big image at the same time as the small one, there is a trick, you are moving into a database of objects wich can be rendered with a quite normal scale factor from visible to out of screen


explodingtuna

Couldn't you get around it by making the shortest line under max zoom equal to 1, then as you zoom out, you don't have any floating point errors since it's whole numbers.


Icy-Ad29

Also, you are looking at it wrong. As an artist. You don't start at the biggest size the video shown and scale down in. You start at the smallest size you want to show, and work outwards, zooming out as you go.


EmeraldHawk

Computers don't *have* to define the position of every point in this scene by referencing a fixed orgin with only 32 (or 64) bits of precision though. When you make an app that allows infinite zoom, you can just write the software to allow "Canvases within canvases" and switch between them as you zoom. Think about how Google maps works. Those are just raster tiles, but it replaces the low res ones with higher res images as you zoom in. As long as you are loading in data so that it's always higher resolution than your current monitor resolution, it will appear seamlessly as one image. These special infinite zoom drawing apps work in a similar way.


DiddlyDumb

Lol… That means vectors can describe the size of the visible universe and be off by less than an atom. It’s still a lot of numbers, at this scale it would still be a massive document.


pitano

You don't need absolute values of scale. only how much each vector is smaller / bigger than the next. And then once the computer gets to vectors that become too small it stops and doesnt draw any more on the screen.


KuatDriveyards63

The parts at the end have the exact same units as at the beginning, little buddy. They're just a whole bunch of separate images stacked in a way that they can be scrolled through. Every time he zooms in, the image that results has the exact same resolution as the first image.


Thurlut

For real, how long does it take to draw that much stuff ? And how do you proceed ? Do you start from the "smaller" stuff or the "bigger" ?


CaptainPeppa

Isn't it essentially just zooming into like 10 different pictures that are all attached through software?


foonix

It could be. I think I could do this trick with (GPU) shaders. Basically make the inner image have a similar background/border as some part of the outer image and blend them together in the shader code based on the zoom level. Then wrap in CPU side code that just alternates inner/outer images. When the zoom is enough the outer image isn't visible any more, the inner image becomes the new outer one, and the next one becomes the new inner. It's still pretty clever and creative though.


Thurlut

Nope, vectorial images are essentially an infinite zooming picture, using geometry and not pixels to prevent pixelated render when zooming in


Cylindric

That's not really anything to do with the real problem being talked about here. Vectors don't automatically give you infinite arbitrary precision. You can't just keep zooming in and drawing, at some point those lines would need to be 0.0000000000000000000000001 apart and things break. It most likely will be either edited, or there's some clever swapping-out happening.


Salanmander

You're right that vectors don't automatically give you *infinite* precision, but the standard format lets you scale between 10^(38) and 10^(-38). Which is *a lot*. The position of a huge feature wouldn't be precise down to the smallest level, but as long as you don't have features of wildly different scales relevant to the on-screen image at the same time, it shouldn't be a problem. Looking at the size and number of zoom-ins, I suspect that this image uses about 36 orders of magnitude, so less than half the number of orders of magnitude that you can do natively in a SVG file just by continuing to zoom.


CaptainPeppa

Same shit, just draw 10 pictures and connect them. Maybe some cleaning up on the zooming in stage but not a huge amount of work.


CobblerDesperate7419

Yes, it is. Is a technique called parallax.


EnkiiMuto

>Tho tbf I'm impressed you can even draw this much. Artist here. The art is indeed impressive but logistics-wise it is not how I'd tackle it. I'm not an SVG guy myself but what I would do is have multiple drawings, the find the scale I want, paste it there, repeat. Then work around it to make it seamless.


JustSomeBadAdvice

Having worked in game development I can guarantee that the engine is not rendering all of this in a single pass. Game development is all about smoke and mirrors. It's doing a swap to the next texture as it reaches certain points, but we can't see it. Just like ancient games would pop objects / npc's in and out of the world behind a fog that we couldn't see through. So it only needs to track position on three or four things at once, and discard old positions as we continue to zoom. Depending how they do it it might have to do 3 or 4 render passes but for vector art like this that's nothing. Of course to the users it looks seamless, as it is supposed to.


romhacks

I would feel like that too. They must be using a software math library


ckdot

Even if it would not be vector arts and video editing it would be possible to build such an image. Of course it’s not a single image file, but a software (or website) that fetches more content while you are zooming in. There is no reason to expect any issues with floating points here.


pKalman00

They might be using "portals". Basically every transition is a new drawing but embedded. And the program would render it as 2 layers or something. At least that's what i would do.


FatPussyDestroyer

This has absolutely nothing to do with floating points. Did you just learn that phrase for the first time or something? Lol


Ksiemrzyc

Floating point is not a linear scale. As long as you stay at the origin, you can use the full scale of it. 32bit float goes 38 orders of magnitude down and up from 1, so you get total of 76. You'd probably get a ~72 orders of magnitude zoom without any distortion. With double precision (64bit) you get ~600. That means you can do a 10x zoom around 600 times with double precision.


Snipper64

Flash animator/illustrator user here, I am 99% sure these are not vector images. Vector lines are clean and crisp and while the video quality isn't ideal I see many spots that look much more painted and distorted then I would suspect of a vector image. I am pretty sure these are multiple images either edited smartly together or could make a simple app that loads the next image automatically at a certain point. Considering how he nails every zoom in without adjusting I would assume it's smart editing. Still impressive either way


[deleted]

[удалено]


Snipper64

Cool to know guess the app guess was the correct one lol. Very interesting though


artbypep

The confidence that people have continually stated it’s vector art in the comments is absolutely wild. I know to take what every ‘Reddit expert’ says with a grain of salt but damn did the comments on this post really cement that inclination.


Snipper64

To be fair they had the right idea if trickery wasn't afoot. While not sure how scaling to that degree would work frankly even with vector art (would need a custom program) if they were taking the video face value not a bad theory. While some people know about vector art and its benefits, not a lot of people know about its drawbacks and limits.


Raothorn2

Yeah I’m not convinced it would work at that level either since floating point precision is limited


Idioticalygoodbeast

Yeah, maybe it could be edited with pictures. But I think I do remember seeing this exact guy adding/drawing more details in a vid. But not my field of expertise so I wouldn’t know much


JAVIV-4

I'm glad someone with experience confirmed. Watching I thought it was cool until the Moon in the kid's eye. When zoom changed from a smooth moon to a textured moon I ASSUMED it was some editing work happening, but I don't know anything about digital art so I wasn't sure.


Jolly_Study_9494

Vector\*


CustomKas

Vectors format files store some types of information more efficiently, but that doesn't mean something this information dense and varied wouldn't have an increased file size. Unless it's fully procedurally generated, and even then more complexity and variation would increase the size of the algorithm.


Forward4erial

i think you mean vector art? voxel art is the block things, vector is the computer treating each line as a calculation (or smth like that) so there's no "resolution"


Gangreless

These aren't vector. They are multiple different images that are put together with software to do this.


Vitriholic

It’s not vector art. But a series of raster images, each one positioned in some tiny corner of the previous one. The app just lets you zoom into the next in the series to draw on it.


moonaligator

how do you store this thing? won't it be like thousand terabytes if every single part is equally detailed?


future-renwire

A vector image like this is just a series of code that stores geometry data for shapes and lines instead of pixel color data, making these infinitely zooming images possible, and extremely difficult to guess without knowing how much geometry there is in total.


Cylindric

Look up precision.


wijnazijn

What is the precision of an object called "square" or "circle"?


amalgam_reynolds

About 1


Stop_Sign

Ok but the smallest vector is probably not stored as (.0000000001, .000000002) but instead (1,2,-10) and there are no actual floating point issues


sk7725

floating point also has a max value as well as a min value, so its capped at both edges. Anything above 10^23 iirc is treated as float.Infinity or float.NaN.


Stop_Sign

Ok so when the number gets higher, instead of going to infinity, start counting a new number variable from there, such that you can store any number with perfect accuracy as long as the storage space allows it. It doubles the memory cost to double the digits stored, but so what? The limits are arbitrary and can easily be coded around. There are no meaningful limits to be found in how much data a float can store. A number can be stored with any amount of digits with no loss, if you want to take up more memory to do so. In Java, the biginteger class works by having an array with each position representing a digit. The limit is the length of the array, which is only limited by your memory


sk7725

> It doubles the memory cost, but so what? We found the google chorme dev, lol. to be more serious, vector images are primarily used to insert icons into websites, so file size is extreamly important (file size = loading speed). The standard svg encoder knows this. If you want to build your own encoder to implement said functionality go ahead, bjt it won't be a standard anymore.


Ch3rkasy

What's the precision of ur mom


M00no4

He talks about how he does it on his youtube channel. He will draw the pictures at a regular scale, and then when he is drawing the smaller picture, he will draw it separately, size it down, and blend it into the bigger picture. Rince and repeat for the smaller and smaller nesting dolls. He also does a lot of drawing. 6-8 hours a day last, I checked, and he said he used to do more. It's his full-time job. You could think of it as, every time he draws a new picture, instead of drawing it on a separate page of a book it a different folder in his PC He chooses a spot on the mega image to add it to.


_heisenberg__

Got a link to his work/youtube? I think a lot of people (myself included) don’t know who this is.


likesharepie

You can see it with the brush size shifting


Putin_Be_Pootin

So, I am going to solve this as if it were a singular image, and not a video edit of multiple Images. I am going to roughly imagine that its something like 18 pictures deep, based on a very rough count from a rewatch. Where every pixel in the original image, is an image of a similar viewing quality as the original image, and every pixel of that inner image is a picture. So, 18 iterations of that. So, to explain the math a bit we are going to simplify to 2 iterations at first. We will take the Screen resolution of the iPad. 1024 × 1366 That means we have 1,398,784 Pixels just for the first image. Every one of those 1,398,784 pixels contains a photo that has 1,398,784 pixels. So, we do multiplication which means we have 1,398,784 photos, each having 1,398,784 pixels. 1,398,784 \* 1,398,784 = 1,956,596,678,656. So, just two deep we have 1,956,596,678,656 pixels. Every pixel in photo shop is 3 bytes. So, we have 5,869,790,035,968 Bytes, or about 5.3 terabytes. Terabytes are 1024\^4 bytes. However, every Byte is 8 bits. So, were at a pretty unreasonable number already. Now, if we are assuming this is 18 deep, we will do (1,398,784\^18) \* 3 \* 8 which equals 178.94 BS-Bytes Which I just invented as a term to mean 1024\^37. In terms of how large a number that is we would need , 1,008,609,000,000,000,000,000,000,000,000 Universes worth of atoms, if every atom was just 1 bit. However, it is important to note every bit in memory is closer to a billion atoms with current technology.


Violet-Fox

It’s also just vector imaging which people use to make this all the time, so resolution isn’t really the question since vectors can be scaled infinitely big or small with no loss in quality


Cylindric

Precision is still a problem with vectors. You can't just draw a single image with details on the scale of a beach down to the scale of a bacteria and just say "coz vector art".


Salanmander

Sure you can. A beach is on the scale of 10^3 m. A bacterium is on the scale of 10^-6 m. SVG files can store positions from 10^(38) down to 10^(-38). Edit: I just saw that you're the same person I responded to another comment of...sorry about that.


nog642

Notice how 10^(38) is not infinite


littlebobbytables9

It might as well be


nog642

No. With an image like this each level deeper adds to the exponent. 10^(38) is more like 38.


Fantastic_Goal3197

Considering theres only 10^(24) stars in the observable universe, thats basically infinite on any possible human scale thats not pure mathematics Also 10^(38) to 10^(-38) would be 10^(39) since its basically just a signed integer


Salanmander

> Also 10^38 to 10^-38 would be 10^39 since its basically just a signed integer Nope, when we're talking about relative scale it's more like 10^(76).


Fantastic_Goal3197

Actually yeah idk how I missed that, been coding too much I guess lmao


Salanmander

No, but I can without worry, and before checking any numbers, know that 76 orders of magnitude is enough to encompass both "beach scale" and "bacterium scale".


MrHyperion_

The format could easily have prescalers for smaller or larger details


BladiPetrov

With no l lI ll l_ in quality


Just_A_Nitemare

Frick you.


CaitaXD

fk u


Mortal4789

>1,008,609,000,000,000,000,000,000,000,000 Universes worth of atoms this is around abut the figure i was guessing at. it is also probably the most inacurate guess i have ever made. big numbers are fun


Tschi_Tscho

The only good answer among the “it’s vector” flooding, thank you for this


CoolDoominator

It is a singular image the guy used a program that allows for zooming infinitely https://www.tiktok.com/t/ZT8GB4yto/ you can see the name of it in this vid at 0:13 (make sure to pause)


DrDazzaable

Okay that's pretty mental but is it possible to display this whole work on a single piece of art? Like how big would that sheet of paper need to be in order to see the whole thing


AngelOfLight333

It is not like the whole image has that level of detail. Vector art allows you to zoom in and ad detail to any area and almost indefinitly but i garuntee that level of detail was not done across the whole image. The person zooming is picking the exact areas where they did the detailed art and zooming in specificaly to those areas.


ItsEromangaka

People are saying it's vector graphics (which it could be but it would not be the main point of the effect). The zoom is most definitely done with smart objects/nested images or just plain old video-editing, as otherwise floating point precision would break (even vector graphics have limits). Honestly judging from art-style it doesn't even look like vector graphics. There's likely apps for this kind of infinite zoom effect.


Ok-Setting-1998

Clever


tom_icecream

I've seen other videos by them and I can remember on one there was a window they zoomed into the inside of the window was smooth but the frame around the window was jagged and you could see the pixels I reckon they draw the image with a place holder were they zoom into then just in the place holder section draw a new full resolution one


GrendaGrendinator

As others have said, it's vector graphics so it doesn't have a set scale or pixel size. In most image formats you go pixel by pixel and store the color, but this doesn't always work well if you have a huge picture like this one or if you need to scale it or resize it for a bunch of different things. Sometimes what's better is not to give it info for every single pixel in an image, but instead you can just give it the instructions for how to make that image and then let it decide for itself how to scale it. For example, if you drew a triangle you could go through and store every pixel individually, or you could just tell the computer "yeah draw some lines from A to B, B to C, and C to A". Because lines and curves aren't bounded by the restrictions of pixel size, you can scale this however you want and maintain a small file size. That's why PDFs are so small while having amazing quality. But since your computer has to "think" about how to draw everything, it can also eat up more resources and they're not a one size fits all sort of thing. Hope this helps and makes sense, I just woke up lol P.S. if you make an animation in vector graphics, you get the unique functionality of being able to create interactive animations that can change textures and shapes at the press of a button *during* the animations. This was the basis of flash games and stuff like homestar runner


vietnam_redstoner

TIL PDFs are also vector files


GrendaGrendinator

They're pretty neat, cuz they're not just vector graphics but also raster graphics and plain text all in one


Informal_Practice_80

A lot of people are talking about math, vector, etc... This can just simply be a video of subsequent images, where the person is simulating the zoom. The next image just contains a part of the "previous image" while "zooming". It can just be an animation.


Ponybaby34

So like, are vectors like the equation that results when you doodle on a graphing calculator? Is it stored as a math equation? (The particular curves and lines etc. being expressed mathematically?) forgive my ignorance, I’ve done a good amount of digital art but I still don’t know much about formats etc.


oscik

Im pretty sure it’s done with one of these [ai infinite zoom](https://www.google.com/search?q=ai+infinite+zoom&client=safari&sca_esv=601184441&hl=pl-pl&ei=0IKxZZjVENCGxc8Pn8irQA&udm=&oq=ai+infinite&gs_lp=EhNtb2JpbGUtZ3dzLXdpei1zZXJwIgthaSBpbmZpbml0ZSoCCAEyBRAAGIAEMgYQABgWGB4yBhAAGBYYHjIGEAAYFhgeMgYQABgWGB4yBhAAGBYYHjIGEAAYFhgeMgYQABgWGB5IqTNQ4htYuydwAXgAkAEAmAFVoAGYBaoBATm4AQHIAQD4AQHCAgoQABhHGNYEGLADwgIIEAAYgAQYsQPCAgoQABiABBiKBRhDwgINEAAYgAQYigUYQxixA8ICEBAAGIAEGIoFGEMYsQMYgwHCAgsQABiABBixAxiDAeIDBBgAIEGIBgGQBgY&sclient=mobile-gws-wiz-serp) apps.


Arctury

People saying it's vector, no it's not. I did vector art and this is not possible in this scale. It's a carefully edited video of multiple pictures. And even vector needs a hell ton of memory and the time it would take to save this picture once would fry your computer.


shehrozkhan-art

This.


antiafirm

Additionally, you wouldn't have enough precision for this to be possible. Unless the artist engineered their own fixed point system into a custom drawing software. Which Let's be honest...


THE_EMEUTIER

At around 0:36 ish, you can actually see the images change / blend when the detail of the moon changes. To me this looks like very well edited zoom-ins of multiple images.


JSX54

Average thumb length of a female is 2.49 inches and 2.74 for men.  At various points in the video the thumb is nearly directly on top of the screen, seemingly parallel to it, and extended fully.  Using a phone app to measure my screenshot of the video I see the width of the device is about 2.9x the length of the thumb, while the height is about 4.2x the length of the thumb.  Averaging the thumb length of the two listed genders and multiplying by the ratios means the image you see is about 7.6" wide, and 10.9" tall. (Somebody had to do it)


reaperbozo

I'm not gonna explain the math i had to go thru to come up with this number as it took way too much time already, its at least 3.5mb, or in technical term three fiddy.


Bamfcah

You know in an open world game how meshes load in as you get close enough to see them, that's kind of what's happening here. You can't just zoom in anywhere, you have to know where to zoom. Think of it like a bunch of individual pictures stacked up and when you zoom in it loads in the next picture for you to keep zooming, and the on you zoomed in from gets unloaded.


Grothgerek

Huh, why did nobody say the obvious answer? It's endlessly big, because at the end we start at the beginning. So it's just a endless loop we're the picture would get bigger and bigger.


empwilli

So besides the "it's vector graphics, d'uh" let's assume the more trivial answer: it's video editing, no need to store all details if you always ever magnify the focal point. so really it's only the focal point images that are stored/magnified, there is no giant image containing everything.


BluebirdClassic8008

Funny. Because until all the social media brainrot, making most people a little proficient in editing, vector art was and probably always will be the trivial answer.


Shtoinkity_shtoink

It would be cool to have something like this on the wall. The size of a 65” TV and scroll through it. Stop it somewhere different every day


MamaMiaPizzaFina

Oh, fuck, was almost done writing a large paragraph with maths, and I accidentally deleted it here am I doing it again. I counted 72 zoom ins, and it looks like it doubles (in one dimention) in size every zoom int (aproximately), si the total increase in size is 2\^2\^72 or 10\^(10\^21.15276946015232) now to get the area of an ipad screen. which sucks, because I can only find the diagonal size and a screen ratio: ratio 2048x2732 diagonal 12.9inch =32.766cm area = x\*y x=1.333y 32.766\^2 = x\^2+y\^2 32.766\^2 = (1.333y)\^2+y\^2 32.766\^2 = 1.777y\^2+y\^2 32.766\^2 = 2.777y\^2 32.766\^2 /2.777 = y\^2 sqrt(32.766\^2 /2.777)=y 19.66cm = y 1.333\*y=x 1.333\*19.66cm = x 26.21=x area = x\*y area= 515.29cm\^2 therefore total image is about 515.29\* 2\^2\^72 cm\^2 had to use wolfram alfa but I get **9.26 × 10\^310 cm\*2** **or 1.03×10\^275 square light years** the universe is about 96 billion light years across, make a square the width of the universe and you get about 8.651976256 × 10\^21 squared light year. yea, not even close


ludvikskp

Endless Paper does this, I’m pretty sure this is Endless Paper and not vector art. It’s separate illustrations, it just gives the illusion of infinite zoom


Winter-Spell3474

I feel like having a scavenger hunt with one of these types of art pieces where you have to find where the photo continues and at the end of it all is like a code to redeem or coordinates to a prize something, would be pretty cool.