7 ms·
Using prime numbers to make better backgrounds
- exch 16y agoThere's a typo in the title of the second 'chapter'. "That’s great. But wa/s/ has all this got to do with web design?"
- xbot 16y agoAh, well spotted. Fixed! Thanks for that.
- thascales 16y agoSimple, elegant, effective. I know how I'm spending my evening...
- jashmenn 16y agoHere's links to the raw lego images: http://www.sitepoint.com/examples/primes/lego-bg1.jpg http://www.sitepoint.com/examples/primes/lego-bg1.jpg http://www.sitepoint.com/examples/primes/lego-bg2.png http://www.sitepoint.com/examples/primes/lego-bg2.png http://www.sitepoint.com/examples/primes/lego-bot1.png http://www.sitepoint.com/examples/primes/lego-bot1.png http://www.sitepoint.com/examples/primes/lego-bot2.png http://www.sitepoint.com/examples/primes/lego-bot2.png http://www.sitepoint.com/examples/primes/lego-headsb.png http://www.sitepoint.com/examples/primes/lego-headsb.png http://www.sitepoint.com/examples/primes/lego-heads-2.png http://www.sitepoint.com/examples/primes/lego-heads-2.png http://www.sitepoint.com/examples/primes/lego-mids1.png http://www.sitepoint.com/examples/primes/lego-mids1.png http://www.sitepoint.com/examples/primes/lego-mids2.png http://www.sitepoint.com/examples/primes/lego-mids2.png
- nadam 16y agoCool, but these numbers don't have to be primes. They just have to be coprimes (like (8,9)). The least common multiple of two coprimes 'a' and 'b' is a*b. http://en.wikipedia.org/wiki/Coprime http://en.wikipedia.org/wiki/Coprime
- baddox 16y agoIndeed. If you already have one tile that's, say 50px wide, you can easily find coprime sizes: http://www.wolframalpha.com/input/?i=coprime+to+50 http://www.wolframalpha.com/input/?i=coprime+to+50
- dmvaldman 16y agoNot for the cicada example, but yes for the web aspect. In the cicada example the point is that one predator would evolve to align its boom cycle so that it had a common divisor with the cycle of the cicada. Since the predator's cycle is variable, it is evolutionarily optimal if the cicada only comes out every prime number of years.
- mryall 16y agoWhy can't the predators evolve to have the same cycle as the cicadas, with a prime number of years?
- redthrowaway 16y agoThey can, but by being so highly variable, the cicada boom cycle becomes a less important survival driver than other factors, such as predator cycles, weather, etc. In a closely-paired ecosystem, with relatively few variables, you do see remarkable coevolution between predators and prey. When the prey removes their boom cycle from the dominant evolutionary stressors on the predator, differential survival of the predator will be determined far more by the dominant factors. It's important to note that, for the cicada, they are not a staple diet but rather an opportunistic one that occurs only once in a few generations. This means that the predator's cycle would have to skip generations in order to be effective. This is unlikely, given that that cycle would have no evolutionary advantage in the intermediary, and would thus be diluted by more pressing concerns.
- dangoldin 16y agoIt's interesting that the cicadas have the cycles they do. Why not also go 23, 29, etc? There's obviously a trade off between being more frequent but also encountering more predators - I'm just curious why they settled on the cycles that they did.
- mullr 16y agoThey're also useful for reverb effects, in very much the same way. See http://www.npr.org/2010/08/03/128935865/queens-brian-may-rocks-out-to-physics-photography http://www.npr.org/2010/08/03/128935865/queens-brian-may-roc... (under "On The 'Stomp-Stomp-Clap' Section Of 'We Will Rock You'") Also, I think the technique will work as long as the numbers are relatively prime, which may be a bit easier to design around.
- camtarn 16y agoUsing coprime-length looping rhythms on top of each other can also create some pretty interesting sounds. Take a rhythm in 4/4 (say a standard rock snare backbeat, playing on the second and fourth note of a four note bar), layer on a cymbal pattern which repeats every three notes, then a bass drum pattern which repeats every five notes. The effect is fairly subtle because the snare keeps everything sounding like 4/4, but the feel of the rhythm is constantly shifting. I found a nice YouTube video demonstrating this a while back, but unfortunately all I can find now is videos of polyrhythms where the loops all have the same duration but different numbers of beats per duration... which is an interesting technique in and of itself :)
- adavies42 16y agoHoly shit, Brian May's one more Ph.D. away from being Buckaroo Banzai!
- mikesurowiec 16y agoWow, very impressive! I will definitely be trying this out. It reminded me of my discrete mathematics class, so now I'm wondering if there are any other cool principles that can be applied to design
- kylemaxwell 16y agoFair point, it's really basic combinatorics but well applied and properly executed.
- euccastro 16y agoAnd number theory.
- alsomike 16y ago892 unique ways to partition a 3x4 grid: http://www.dubberly.com/concept-maps/3x4grid.html http://www.dubberly.com/concept-maps/3x4grid.html They also have an interactive tool that generates HTML/CSS: http://www.3x4grid.com http://www.3x4grid.com
- hydrazine 16y agoGonna try this with pseudo-random opacity styling for even more variations.
- mcdaid 16y agoBrilliant interesting article about a very simple but clever idea. I am not sure if I would use this css background technique, but the lego example is brilliant. Some articles trigger lots of ideas in my mind, this was one of them.
- jws 16y agoI won't get a chance to write this up, but in a similar vein, if you split the grain/texture off of an image, you can scale and stretch the image as needed, then drop a fairly small, tiled grain texture back on top. I think it is nicer to do two grain textures, one for lighter and one for darker. Make the grain image be solid white or black and put the grain in the alpha channel.
- xbot 16y agoHey guys, I actually mocked up a woodgrain test page while I was developing the article but I ended up preferring the lego and curtain examples. But if your interested: http://www.sitepoint.com/examples/primes/woodgrain.html http://www.sitepoint.com/examples/primes/woodgrain.html It's not bad, but I don't think it's killer yet. I've got a very raw maze generation example somewhere if anyone's interested.
- prawn 16y agoThis is HN. Almost everyone's interested, so post away!
- xbot 16y agohttp://www.sitepoint.com/examples/primes/maze.html http://www.sitepoint.com/examples/primes/maze.html The graphics are a bit nasty but the concept is works. There seems to be a diagonal pattern emerging, but a fourth layer would certainly break that.
- IDisposableHero 16y agoThis is very well explained, but not all that novel. Brian Eno used to generate long soundscapes like this, using loops of mutually prime lengths of time. Edit: See also - http://en.wikipedia.org/wiki/Ambient_1:_Music_for_Airports http://en.wikipedia.org/wiki/Ambient_1:_Music_for_Airports http://en.wikipedia.org/wiki/Generative_music http://en.wikipedia.org/wiki/Generative_music
- nadam 16y agoYes it is a known technique also in 3D games. Related, but more complicated (research) topic is infinite/arbitrarily-sized non-looping texture generation from arbitrary sample images. http://www.cs.sunysb.edu/~vordonezroma/texturesynth.pdf http://www.cs.sunysb.edu/~vordonezroma/texturesynth.pdf (There are some mind blowing generated images in the linked PDF.)
- jws 16y agoIt also is the core of "method ringing", a kind of bell ringing from the 17th century and persisting today. Imagine some folks clanging away at 10 bells in a church tower for hours on end, never repeating, and never developing a melody. Each person is operating a single bell and repeating their pattern with a unique period. http://en.wikipedia.org/wiki/Change_ringing http://en.wikipedia.org/wiki/Change_ringing
- IDisposableHero 16y agoHah, that trumps my example by 200 years. Well done.
- gjm11 16y agoExcept for the small detail that it isn't true. In change ringing, what you do is to cycle through some subset of the permutations of N bells. So you might begin 123456 123465 124365 and so on. The whole thing is made up of blocks of N bells in each of which each bell is rung once. Therefore, all bells have (on average) the same period: one ring, on average, out of every N. The bells are hung in such a way that they naturally want to swing with equal periods, so you don't have to disturb one too much to make it ring one place earlier or later in the cycle. (A bell is never moved by more than two places.) I don't see any reason why a peal of bells couldn't be set up to produce the effect jws described, but it wouldn't be at all the same thing as change ringing.
- SeanLuke 16y agoWhat's wrong with the "cicada theory" 1. The most common cicadas come out every year or every other year. 2. The 17-year cicadas (for example) don't come out once every 17 years -- they come out every single year. Just in different broods (groups differing by phase). Some broods are much bigger than others of course, and broods are often located in different parts of the country, but many broods can and do overlap. So I dunno. I'm guessing they're 13 and 17 year cicadas because that's how long it takes to develop.
- KirinDave 16y agoConsider, though, that these groups of cicadas don't really "care" about one another from a genetic standpoint. If the broods don't interact, they're basically different sets of genes that only interact via mutations, so the principle still holds. What's interesting about that is how the broods might diverge to coprime emergence schedules to prevent competition.
- ars 16y agoWell, they do care. The idea is to starve out predators. If there is another set of cicadas feeding them, then it doesn't work for just you to avoid them.
- scott_s 16y agoKirinDave's point is that there is no "idea." If the groups are disjoint, there's no conspiracy, no way for them to interact with each other. If you and your group avoid the predators, then you will thrive. It doesn't matter that another group does not. Evolution happens at the level of genes, not groups.
- scott_s 16y agoI'm guessing they're 13 and 17 year cicadas because that's how long it takes to develop. That's a tautology. "A baby takes 9 months to be born because that's how long it takes to develop." Well, yes, but the question becomes, why does it take that amount of time to develop? Were there direct selection pressures acting on that length of time, or is that length of time mostly a function of other variables which are acted on directly by selection pressure?
- BrandonM 16y agoThis is the perfect Hacker News article. I learned something new and mathematically-interesting about the natural world, the author came up with a clever hack to enliven backgrounds, and we learn how to apply that to improve our own designs.
- satori99 16y agoTotally agree. There have been quite a few articles recently that fall into this category. pquerna's recent post about OpenSSL memory in node (and elsewhere) is another that comes to mind. http://news.ycombinator.com/item?id=2411144 http://news.ycombinator.com/item?id=2411144 keep 'em coming I say!
- TimothyBurgess 16y agoUpvoted solely for "keep 'em coming!" This article was truly awesome. I'm kicking myself for having not thought of it before because it seems like such a simple concept! Makes me wonder what else out there I haven't thought of... ;)
- derefr 16y agoIt's interesting that it's almost impossible to pin down a verbal guideline for what people should be submitting (besides "anything that gratifies one's intellectual curiosity") but pretty easy to point to a given article and say that, yes, this definitely is Hacker News. It'd be pretty awesome if we could have an HN that's just this sort of stuff (with a strong tendency toward false-negatives vs. false-positives—i.e. no "maybe good", only "definitely good.") I wouldn't mind even if it only had two or three new posts per day—fewer, guaranteed posts means I could actually stand to add it to my RSS reader, vs. the current HN which is more of a firehose: good to stick a bottle in every once in a while, not good to stand in front of. Thinking on that, here's one way it could be implemented on top of the current HN: if there was some sort of "way, way up"-vote button that (besides being an actual "I wish I had N upvotes to give this" upvote-N-times button) worked as a sort of moral negative to flagging, such that when it had been hit [some threshold] times for an article, the article would get linked into the "/awesome" sublist, that might be enough to make it happen—if we trust the userbase to not abuse it. If everyone started to way-way-up-vote everything they currently just up-vote, perhaps one could stick a CAPTCHA (or three) on it to make it just annoying enough to disuade abuse (at the cost of further false negatives from people now too lazy to use it.)
- deleted 16y ago[deleted]
- granite_scones 16y ago"This example uses the simplest possible set of prime number — 1, 3, and 7." 1 is not a prime number. Also, the "simplest" possible set of primes would be 2, 3, and 5.
- deleted 16y ago[deleted]
- mdiamond 16y agoFor those of you that have Firefox 4, it might be fun to play around with the new "-moz-element()" function that allows you to embed one (or more!) html elements as a background image, using this to create a series of prime-spaced overlapping colors. A fairly pedestrian example that I whipped up: http://web.njit.edu/~md224/backgroundtest.html http://web.njit.edu/~md224/backgroundtest.html (Firefox 4 only!)
- harshpotatoes 16y agoAnd some people still question the value of pure math. These design tricks would anger some of my design friends, who still believe you can be left brain OR right brain.
- TimothyBurgess 16y agoYeah what's up with that?! I think in this day and age people are more than capable of being both highly creative and logical.
- Nate75Sanders 16y agoWhile not the same thing, the concept of increasing the degree of realism/getting away from things that are too regular reminded me of Perlin Noise: http://en.wikipedia.org/wiki/Perlin_noise http://en.wikipedia.org/wiki/Perlin_noise
- dhjyi 16y agoONLINE STORE: http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )==== Air jordan(1-24)shoes $30 Handbags(Coach l v f e n d i d&g) $35 Tshirts (Polo ,ed hardy,lacoste) $15 Jean(True Religion,ed hardy,coogi) $30 Sunglasses(Oakey,coach,gucci,A r m a i n i) $15 New era cap $12 Bikini (Ed hardy,polo) $20 accept paypal and free shipping http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )==== http://www.fullmalls.com http://www.fullmalls.com )====
- joubert 16y agoReminds me of a section in The Blind Watchmaker on cicadas and convergence in evolution - http://books.google.com/books?id=sPpaZnZMDG0C&pg=PA100&lpg=PA100&dq=dawkins+cicadas&source=bl&ots=tCk_aZ739G&sig=92lqIZdcWlUd59sQT-_pbnc22S4&hl=en&ei=P-yeTcWwKsiO0QGkmoj8BA&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBUQ6AEwAA#v=onepage&q&f=false http://books.google.com/books?id=sPpaZnZMDG0C&pg=PA100&#...
- jeberle 16y agoWhy is it that "design" sites have the worst design? Yes, please be sure to destroy the page margins, and set a min width on the page so that I have to scroll horizontally to read the end of lines. Classic.