Shared posts

06 Nov 14:50

Responsive Images in Practice

by Eric Portis
Rob Jeschofnik

css bs

probably important

The devil has put a penalty on all things we enjoy in life.
Albert Einstein

Sixty-two percent of the weight of the web is images, and we’re serving more image bytes every day. That would be peachy if all of those bytes were being put to good use. But on small or low-resolution screens, most of that data is waste.

Why? Even though the web was designed to be accessed by everyone, via anything, it was only recently that the device landscape diversified enough to force an industry-wide movement toward responsive design. When we design responsively our content elegantly and efficiently flows into any device. All of our content, that is, except for bitmaps. Bitmap images are resolution-fixed. And their vessel—the venerable img with its sadly single src—affords no adaptation.

Faced with a Sophie’s choice—whether to make their pages fuzzy for some or slow for all—most designers choose the latter, sending images meant to fill the largest, highest-resolution screens to everybody. Thus, waste.

But! After three years of debate, a few new pieces of markup have emerged to solve the responsive images problem:

  • srcset
  • sizes
  • picture
  • and our old friend source (borrowed from audio and video)

These new elements and attributes allow us to mark up multiple, alternate sources, and serve each client the source that suits it best. They’ve made their way into the official specs and their first full implementation—in Chrome 38—shipped in September. With elegant fallbacks and a polyfill to bridge the gap, we can and should implement responsive images now. So, let’s!

Let’s take an existing web page and make its images responsive. We’ll do so in three passes, applying each piece of the new markup in turn:

  1. We’ll ensure that our images scale efficiently with srcset and sizes.
  2. We’ll art direct our images with picture and source media.
  3. We’ll supply an alternate image format using picture and source type.

In the process we’ll see firsthand the dramatic performance gains that the new features enable.

The status quo

I guess I don’t so much mind being old, as I mind being fat and old.
Benjamin Franklin (or was it Peter Gabriel?)

We take as our subject a little web page about crazy quilts. It’s a simple, responsive page. There isn’t much to get in the way of its primary content: giant images (of quilts!). We want to show both the overall design of each quilt and as much intricate detail as possible. So, for each, we present two images:

  1. the whole quilt, fit to the paragraph width
  2. a detail that fills 100 percent of the viewport width

How would we size and mark up our images without the new markup?

First up: the whole quilts. To ensure that they’ll always look sharp, we need to figure out their largest-possible layout size. Here’s the relevant CSS:

* {
	box-sizing: border-box;
}
body {
	font-size: 1.25em;
}
figure {
	padding: 0 1em;
	max-width: 33em;
}
img { 
	display: block;
	width: 100%;
}

We can calculate the img’s largest-possible display width by taking the figure’s max-width, subtracting its padding, and converting ems to pixels:

  100% <img> width
x ( 33em <figure> max-width
   - 2em <figure> padding )
x 1.25em <body> font-size
x 16px default font-size
= 620px

Or, we can cheat by making the window really big and peeking at the dev tools:

Chrome's dev-tools box model graphic, showing the element to be 620px wide.

(I prefer the second method.)

Either way we arrive at a maximum, full-quilt img display width of 620px. We’ll render our source images at twice that to accommodate 2x screens: 1,240 pixels wide.

But what to do about our detail images? They expand to fill the whole viewport, whose size has no fixed upper limit. So let’s pick something big-ish with a standard-y feel to it and render them at oh, say, up to 1,920 pixels wide.

When we render our images at those sizes our status-quo page weighs in at a hefty 3.5MB. All but 5.7kB of that is images. We can intuit that many of those image bytes constitute invisible overhead when delivered to small, low-resolution screens—but how many? Let’s get to work.

First pass: scaling with scrset and sizes

Teatherball with a tennis ball for his shoelaces

Naturally adapt to have more than two faces

Kool AD, Dum Diary

The first problem we’ll tackle: getting our images to scale efficiently across varying viewport widths and screen resolutions. We’ll offer up multiple resolutions of our image, so that we can selectively send giant sources to giant and/or high-resolution screens and smaller versions to everyone else. How? With srcset.

Here’s one of our full-viewport-width detail images:

<img
	src="quilt_2-detail.jpg"
	alt="Detail of the above quilt, highlighting the embroidery and exotic stitchwork." />

quilt_2-detail.jpg measures 1,920 pixels wide. Let’s render two smaller versions to go along with it and mark them up like so:

<img
	srcset="quilt_2/detail/large.jpg  1920w, 
	        quilt_2/detail/medium.jpg  960w,
	        quilt_2/detail/small.jpg   480w"
	src="quilt_2/detail/medium.jpg"
	alt="Detail of the above quilt, highlighting the embroidery and exotic stitchwork.">

The first thing to note about this img is that it still has a src, which will load in browsers that don’t support the new syntax.

For more capable clients, we’ve added something new: a srcset attribute, which contains a comma-separated list of resource URLs. After each URL we include a “width descriptor,” which specifies each image’s pixel width. Is your image 1024 x 768? Stick a 1024w after its URL in srcset. srcset-aware browsers use these pixel widths and everything else that they know about the current browsing environment to pick a source to load out of the set.

How do they choose? Here’s my favorite thing about srcset: we don’t know! We can’t know. The picking logic has been left intentionally unspecified.

The first proposed solutions to the responsive image problem attempted to give authors more control. We would be in charge, constructing exhaustive sets of media queries—contingency plans listing every combination of screen size and resolution, with a source custom-tailored for each.

srcset saves us from ourselves. Fine-grained control is still available when we need it (more on that later), but most of the time we’re better off handing over the keys and letting the browser decide. Browsers have a wealth of knowledge about a person’s screen, viewport, connection, and preferences. By ceding control—by describing our images rather than prescribing specific sources for myriad destinations—we allow the browser to bring that knowledge to bear. We get better (future-friendly!) functionality from far less code.

There is, however, a catch: picking a sensible source requires knowing the image’s layout size. But we can’t ask browsers to delay choosing until the page’s HTML, CSS, and JavaScript have all been loaded and parsed. So we need to give browsers an estimate of the image’s display width using another new attribute: sizes.

How have I managed to hide this inconvenient truth from you until now? The detail images on our example page are a special case. They occupy the full width of the viewport—100vw—which just so happens to be the default sizes value. Our full-quilt images, however, are fit to the paragraph width and often occupy significantly less real estate. It behooves us to tell the browser exactly how wide they’ll be with sizes.

sizes takes CSS lengths. So:

sizes="100px"

...says to the browser: this image will display at a fixed width of 100px. Easy!

Our example is more complex. While the quilt imgs are styled with a simple width: 100% rule, the figures that house them have a max-width of 33em.

Luckily, sizes lets us do two things:

  1. It lets us supply multiple lengths in a comma-separated list.
  2. It lets us attach media conditions to lengths.

Like this:

sizes="(min-width: 33em) 33em, 100vw"

That says: is the viewport wider than 33em? This image will be 33em wide. Otherwise, it’ll be 100vw.

That’s close to what we need, but won’t quite cut it. The relative nature of ems makes our example tricky. Our page’s body has a font-size of 1.25em, so “1em” in the context of our figure’s CSS will be 1.25 x the browser’s default font size. But within media conditions (and therefore, within sizes), an em is always equal to the default font size. Some multiplication by 1.25 is in order: 1.25 x 33 = 41.25.

sizes="(min-width: 41.25em) 41.25em,
       100vw"

That captures the width of our quilts pretty well, and frankly, it’s probably good enough. It’s 100 percent acceptable for sizes to provide the browser with a rough estimate of the img’s layout width; often, trading a tiny amount of precision for big gains in readability and maintainability is the right choice. That said, let’s go ahead and make our example exact by factoring in the em of padding on either side of the figure: 2 sides x 1.25 media-condition-ems each = 2.5ems of padding to account for.

<img 
	srcset="quilt_3/large.jpg  1240w, 
	        quilt_3/medium.jpg  620w,
	        quilt_3/small.jpg   310w"
	sizes="(min-width: 41.25em) 38.75em,
	       calc(100vw - 2.5em)"
	src="quilt_3/medium.jpg"
	alt="A crazy quilt whose irregular fabric scraps are fit into a lattice of diamonds." />

Let’s review what we’ve done here. We’ve supplied the browser with large, medium, and small versions of our image using srcset and given their pixel widths using w descriptors. And we’ve told the browser how much layout real estate the images will occupy via sizes.

If this were a simple example, we could have given the browser a single CSS length like sizes="100px" or sizes="50vw". But we haven’t been so lucky. We had to give the browser two CSS lengths and state that the first length only applies when a certain media condition is true.

Thankfully, all of that work wasn’t in vain. Using srcset and sizes, we’ve given the browser everything that it needs to pick a source. Once it knows the pixel widths of the sources and the layout width of the img, the browser calculates the ratio of source-to-layout width for each source. So, say sizes returns 620px. A 620w source would have 1x the img’s px. A 1240w source would have 2x. 310w? 0.5x. The browser figures out those ratios and then picks whichever source it pleases.

It’s worth noting that the spec allows you to supply ratios directly and that sources without a descriptor get assigned a default ratio of 1x, allowing you to write markup like this:

<img src="standard.jpg" srcset="retina.jpg 2x, super-retina.jpg 3x" />

That’s a nice, compact way to supply hi-DPI imagery. But! It only works for fixed-width images. All of the images on our crazy-quilts page are fluid, so this is the last we’ll hear about x descriptors.

Measuring up

Now that we’ve rewritten our crazy-quilts page using srcset and sizes, what have we gained, in terms of performance?

Our page’s weight is now (gloriously!) responsive to browsing conditions. It varies, so we can’t represent it with a single number. I reloaded the page a bunch in Chrome and charted its weight across a range of viewport widths:

The flat, gray line up top represents the status-quo weight of 3.5MB. The thick (1x screen) and thin (2x) green lines represent the weight of our upgraded srcset’d and size’d page at every viewport width between 320px and 1280px.

On 2x, 320px-wide screens, we’ve cut our page’s weight by two-thirds—before, the page totaled 3.5MB; now we’re only sending 1.1MB over the wire. On 320px, 1x screens, our page is less than a tenth the weight it once was: 306kB.

From there, the byte sizes stair-step their way up as we load larger sources to fill larger viewports. On 2x devices we take a significant jump at viewport widths of ~350px and are back to the status-quo weight after 480px. On 1x screens, the savings are dramatic; we’re saving 70 to 80 percent of the original page’s weight until we pass 960px. There, we top out with a page that’s still ~40 percent smaller than what we started with.

These sorts of reductions—40 percent, 70 percent, 90 percent—should stop you in your tracks. We’re trimming nearly two and a half megabytes off of every Retina iPhone load. Measure that in milliseconds or multiply it by thousands of pageviews, and you’ll see what all of the fuss is about.

Second pass: picture and art direction

srcset if you’re lazy, picture if you’re crazy™
Mat Marquis

So, for images that simply need to scale, we list our sources and their pixel widths in srcset, let the browser know how wide the img will display with sizes, and let go of our foolish desire for control. But! There will be times when we want to adapt our images in ways that go beyond scaling. When we do, we need to snatch some of that source-picking control right back. Enter picture.

Our detail images have a wide aspect ratio: 16:9. On large screens they look great, but on a phone they’re tiny. The stitching and embroidery that the details should show off are too small to make out.

It would be nice if we could “zoom in” on small screens, presenting a tighter, taller crop.

An animated illustration showing how small the detail images get on narrow screens, and how much more detail we get by presenting a different crop.

This kind of thing—tailoring image content to fit specific environments—is called “art direction.” Any time we crop or otherwise alter an image to fit a breakpoint (rather than simply resizing the whole thing), we’re art directing.

If we included zoomed-in crops in a srcset, there’s no telling when they’d get picked and when they wouldn’t. Using picture and source media, we can make our wishes explicit: only load the wide, rectangular crops when the viewport is wider than 36em. On smaller viewports, always load the squares.

<picture>
	<!-- 16:9 crop -->
	<source
		media="(min-width: 36em)"
		srcset="quilt_2/detail/large.jpg  1920w,
		        quilt_2/detail/medium.jpg  960w,
		        quilt_2/detail/small.jpg   480w" />
	<!-- square crop -->
	<source
		srcset="quilt_2/square/large.jpg  822w,
		        quilt_2/square/medium.jpg 640w,
		        quilt_2/square/small.jpg  320w" />
	<img
		src="quilt_2/detail/medium.jpg"
		alt="Detail of the above quilt, highlighting the embroidery and exotic stitchwork." />
</picture>

A picture element contains any number of source elements and one img. The browser goes over the picture’s sources until it finds one whose media attribute matches the current environment. It sends that matching source’s srcset to the img, which is still the element that we “see” on the page.

Here’s a simpler case:

<picture>
	<source media="(orientation: landscape)" srcset="landscape.jpg" />
	<img src="portrait.jpg" alt="A rad wolf." />
</picture>

On landscape-oriented viewports, landscape.jpg is fed to the img. When we’re in portrait (or if the browser doesn’t support picture) the img is left untouched, and portrait.jpg loads.

This behavior can be a little surprising if you’re used to audio and video. Unlike those elements, picture is an invisible wrapper: a magical span that’s simply feeding its img a srcset.

Another way to frame it: the img isn’t a fallback. We’re progressively enhancing the img by wrapping it in a picture.

In practice, this means that any styles that we want to apply to our rendered image need to be set on the img, not on the picture. picture { width: 100% } does nothing. picture > img { width: 100% } does what you want.

Here’s our crazy-quilts page with that pattern applied throughout. Keeping in mind that our aim in employing picture was to supply small-screened users with more (and more useful) pixels, let’s see how the performance stacks up:

Not bad! We’re sending a few more bytes to small 1x screens. But for somewhat complicated reasons having to do with the sizes of our source images, we’ve actually extended the range of screen sizes that see savings at 2x. The savings on our first-pass page stopped at 480px on 2x screens, but after our second pass, they continue until we hit 700px.

Our page now loads faster and looks better on smaller devices. And we’re not done with it yet.

Third pass: multiple formats with source type

The 25-year history of the web has been dominated by two bitmap formats: JPEG and GIF. It took PNGs a painful decade to join that exclusive club. New formats like WebP and JPEG XR are knocking at the door, promising developers superior compression and offering useful features like alpha channels and lossless modes. But due to img’s sadly single src, adoption has been slow—developers need near-universal support for a format before they can deploy it. No longer. picture makes offering multiple formats easy by following the same source type pattern established by audio and video:

<picture>
	<source type="image/svg+xml" srcset="logo.svg" />
	<img src="logo.png" alt="RadWolf, Inc." />
</picture>

If the browser supports a source’s type, it will send that source’s srcset to the img.

That’s a straightforward example, but when we layer source type-switching on top of our existing crazy-quilts page, say, to add WebP support, things get hairy (and repetitive):

<picture>
	<!-- 16:9 crop -->
	<source
		type="image/webp"
		media="(min-width: 36em)"
		srcset="quilt_2/detail/large.webp  1920w,
		        quilt_2/detail/medium.webp  960w,
		        quilt_2/detail/small.webp   480w" />
	<source
		media="(min-width: 36em)"
		srcset="quilt_2/detail/large.jpg  1920w,
		        quilt_2/detail/medium.jpg  960w,
		        quilt_2/detail/small.jpg   480w" />
	<!-- square crop -->
	<source
		type="image/webp"
		srcset="quilt_2/square/large.webp   822w,
		        quilt_2/square/medium.webp  640w,
		        quilt_2/square/small.webp   320w" />
	<source
		srcset="quilt_2/square/large.jpg   822w,
		        quilt_2/square/medium.jpg  640w,
		        quilt_2/square/small.jpg   320w" />
	<img
		src="quilt_2/detail/medium.jpg"
		alt="Detail of the above quilt, highlighting the embroidery and exotic stitchwork." />
</picture>

That’s a lot of code for one image. And we’re dealing with a large number of files now too: 12! Three resolutions, two formats, and two crops per image really add up. Everything we’ve gained in performance and functionality has come at a price paid in complexity upfront and maintainability down the road.

Automation is your friend; if your page is going to include massive code blocks referencing numerous alternate versions of an image, you’d do well to avoid authoring everything by hand.

So is knowing when enough is enough. I’ve thrown every tool in the spec at our example. That will almost never be prudent. Huge gains can be had by employing any one of the new features in isolation, and you should take a long, hard look the complexities of layering them before whipping out your claw and committing to the kitchen sink.

That said, let’s take a look at what WebP can do for our quilts.

An additional 25 to 30 percent savings on top of everything we’ve already achieved—not just at the low end, but across the board—certainly isn’t anything to sneeze at! My methodology here is in no way rigorous; your WebP performance may vary. The point is: new formats that provide significant benefits versus the JPEG/GIF/PNG status quo are already here, and will continue to arrive. picture and source type lower the barrier to entry, paving the way for image-format innovation forevermore.

size the day

This is the secret of perfection:

When raw wood is carved, it becomes a tool;

[...]

The perfect carpenter leaves no wood to be carved.

27. Perfection, Tao Te Ching

For years, we’ve known what’s been weighing down our responsive pages: images. Huge ones, specially catered to huge screens, which we’ve been sending to everyone. We’ve known how to fix this problem for a while too: let us send different sources to different clients. New markup allows us to do exactly that. srcset lets us offer multiple versions of an image to browsers, which, with a little help from sizes, pick the most appropriate source to load out of the bunch. picture and source let us step in and exert a bit more control, ensuring that certain sources will be picked based on either media queries or file type support.

Together, these features let us mark up adaptable, flexible, responsive images. They let us send each of our users a source tailored to his or her device, enabling huge performance gains. Armed with a superb polyfill and an eye toward the future, developers should start using this markup now!

06 Nov 14:46

CNN anchor caught on-air using a Microsoft Surface tablet as an iPad stand

by Yoni Heisler
Try as they might, Microsoft's effort to get its Surface tablets out and in front of as many people as possible keeps backfiring in hilarious ways. Most recently, a CNN anchor during Tuesday night's election coverage was spotted using his Microsoft...
05 Nov 10:33

Obese Pop Culture Characters

by A B

Created by Chicago-based illustrator and graphic designer Alex Solis.

05 Nov 10:29

Photo

by yesiac


30 Oct 10:21

twisted-transistorr: paindemands-tob3-felt: pandabearjayy: I...





twisted-transistorr:

paindemands-tob3-felt:

pandabearjayy:

I absolutely love the end result.

i can’t believe i watched that

i thought this was going to take me on a spiritual journey and it did

30 Oct 10:07

meganananana: Are kangaroos like mad stoners or what



meganananana:

Are kangaroos like mad stoners or what

25 Oct 05:09

Literally Heavy, Literally Metal

Literally Heavy, Literally Metal

Submitted by: (via Acid Cow)

Tagged: art , metal , sculpture , g rated , win
24 Oct 11:31

Photo



23 Oct 03:11

The Sims just gets meaner every time.

by jwz
22 Oct 02:55

Photo

by yesiac


19 Oct 11:00

bunnyfood: (via fuckyeahdementia)

by yesiac
16 Oct 12:34

I don't know what I expected.

16 Oct 06:07

nymphdomi: andy065: Fuck your house. OMG I’m dying

by yesiac




nymphdomi:

andy065:

Fuck your house.

OMG I’m dying

04 Oct 11:18

alienpapacy: initiating MAXIMUM OVERBIRD



alienpapacy:

initiating MAXIMUM OVERBIRD

03 Oct 07:21

The Psychology of Destiny’s Loot Systems

by Jamie Madigan

I’ve been playing a lot of Destiny lately, and while it’s a shooter at heart, it also has a loot system front and center. You kill stuff and do missions to get loot, which makes your numbers go up, which means you can kill tougher stuff and do harder missions to get better loot, and so on. Destiny even has the standard loot color codes: white, green, blue, purple, and yellow in order of ascending quality.

I’ve been thinking about the psychology of Destiny’s loot system and how it compares to other games. I think they’ve done one thing well and one thing not as well. Let’s look at something I think Bungie’s designers flubbed on first.

My hunter and his hard earned gear.

My hunter and his hard earned gear.

One of the reasons we love loot drops can be traced back to what’s known as a feedback loop or sometimes a habit loop. Psychologists who who have studied how animals and people learn long ago observed that if you pair a reward with a behavior, that behavior gets repeated more often. And if you preceed the pairing with some kind of cue, subjects will learn to engage in the behavior at the sight (or sound, or whatever) of the cue. The reward at the end of the process reinforces the idea that the cue is worth looking for again in the future, creating the feedback loop: 1

habit loop

Really, this stuff is old hat and probably familiar to any student of psychology and/or game developer. In Diablo III, players quickly learn that elite monsters –for example, color coded foes with unique names– have a much higher chance of dropping loot. Thus players get excited when they see one and do their best to smash it open like a gory pinata. It turns playing the game into a habit. Let’s call that a loot loop:

diablo loop

The thing about Destiny, though, is that items of any quality can drop randomly from any enemy. Destiny has elite enemies in the form of “Majors” and “Ultras” and bosses, but they are no more likely than trash mobs to drop loot. You can get purple loot from a lowly Vex Goblin and nothing from downing “Xyor the Unwed,” a unique (and far more powerful) Fallen Wizard. This means that the “see an elite” cue in the feedback loop is essentially missing from Destiny. It’s just “kill stuff” and “maybe reward but probably not.” 2

That’s not much of a loop, and the result of how Destiny handles loot drops from defeating enemies means that it’s not fully using the power of the habit loop. There’s no cue to search for and get excited about beyond seeing an enemy –any enemy. But killing a single enemy yields rewards so rarely that no feedback loop emerges.3

The fabled "loot cave" (see footnote) is a direct result of the missing step in Destiny's loot loop.

Destiny’s fabled “loot cave” (see footnote) is a direct result of the missing step in Destiny’s loot loop.

But all is not bad on the Destiny loot scene. The game does one interesting thing that I think may actually make players happier with their loot drops. Even if it’s a bit counter-intuitive.

In 2007 Jaime Kurtz, Timothy Wilson, and Daniel Gilbert did a study on how uncertainty about rewards affects how happy people are with them.4 They had individual subjects come in to do a task, but before they got started the researchers said that subjects would win a small prize (e.g., a box of chocolates or a coffee mug) if a spin on a roulette wheel favored them. In reality, because all psychologists are compulsive liars, the wheel was rigged so that everyone was a winner.

The trick was that half of the subjects were told immediately which of the prizes they would get at the end of the experimental session. “You’ll get that box of chocolates you wanted when we’re all done today!” Other subjects, however, were told that they would get one of the prizes, but they wouldn’t find out exactly which one until the end of the experimental session. So it’s like one group got to identify their loot immediately, while another had to wait until they could go back to town and have Deckard Cain identify it.

Which group do you think was happier for longer according to self reports of mood via questionnaire? Turns out it was the ones who didn’t know which prize they were going to get. One reason is simply that the reward is stretched out over time. Another is that we tend to adapt to positive (or negative) emotional experiences fairly quickly so that they level out, which is harder to do when we don’t know the specifics of a windfall.

An engram in Destiny. Image courtesy of destiny.wikia.com.

An engram in Destiny. Image courtesy of destiny.wikia.com.

As I hinted at above, this experiment maps on to video game loot drops. In Destiny, players often receive engrams as loot drops. Engrams are basically unidentified items with the same green/blue/purple color coding scheme. You have to take them back to town to a NPC to have them identified. So like the subject who wins an unknown prize in the study above, getting a purple engram drop is exciting but players don’t know exactly what it is until some time later. The anticipation is sweet, and like the subjects in the study, it should increase overall hapiness. For a while, anyway.5

Now, if you will excuse me, I need to go complete the daily strike mission so I can upgrade my exotic chest armor. See you online.

Follow me on Twitter, Facebook, or RSS.

03 Oct 07:16

A Full Circle Rainbow over Australia - 2014 September 30


Explanation: Have you ever seen an entire rainbow? From the ground, typically, only the top portion of a rainbow is visible because directions toward the ground have fewer raindrops. From the air, though, the entire 360 degree circle of a rainbow is more commonly visible. Pictured here, a full circle rainbow was captured over Cottesloe Beach near Perth, Australia last year by a helicopter flying between a setting sun and a downpour. An observer-dependent phenomenon primarily caused by the internal reflection of sunlight by raindrops, the 84-degree diameter rainbow followed the helicopter, intact, for about 5 kilometers. As a bonus, a second rainbow that was more faint and color-reversed was visible outside the first.

-- Delivered by Feed43 service

03 Oct 07:14

animalsinpeopleclothes: On a scale from 1-10, your coolness is...

Rob Jeschofnik

dealing with it



animalsinpeopleclothes:

On a scale from 1-10, your coolness is off the charts.

02 Oct 03:42

reblog-gif: Tumblr best Funny Gif Blog — http://gifini.com/



reblog-gif:

Tumblr best Funny Gif Blog — http://gifini.com/

30 Sep 06:27

Photo

by yesiac






30 Sep 06:27

Photo



30 Sep 02:56

Asian Games 2014

The games are well underway in Incheon, South Korea, with athletes from 45 nations competing in more events and sports -- such as kabaddi, wushu, and sepak takraw -- than at the Summer Olympics. The event wraps up with closing ceremonies on Oct. 4. --Lloyd Young (25 photos total)

Japan's Masanori Hayashi (left) strikes the ball against South Korea's Im An-Soo in the men's team sepak takraw preliminary match during the 2014 Asian Games at Bucheon Gymnasium in Bucheon, east of Incheon, on Sept. 24. (Jung Yron-Je/AFP/Getty Images)
29 Sep 02:59

Photo

Rob Jeschofnik

dubstep producer



25 Sep 02:55

Photo



25 Sep 02:55

Photo

by yesiac


24 Sep 02:56

Aurora and Volcanic Light Pillar - 2014 September 23


Explanation: That's no sunset. And that thin red line just above it -- that's not a sun pillar. The red glow on the horizon originates from a volcanic eruption, and the red line is the eruption's reflection from fluttering atmospheric ice crystals. This unusual volcanic light pillar was captured over Iceland earlier this month. The featured scene looks north from Jökulsárlón toward the erupting volcano Bárðarbunga in the Holuhraun lava field. Even the foreground sky is picturesque, with textured grey clouds in the lower atmosphere, shimmering green aurora in the upper atmosphere, and bright stars far in the distance. Although the last eruption from Holuhraun was in 1797, the present volcanic activity continues.

-- Delivered by Feed43 service

22 Sep 08:12

White Castle by Yuri Shwedoff

by noreply@blogger.com (Igor Tkac)
Yuri Shwedoff's portfolio on ArtStation.


Keywords: space shuttle on rover moving platform overgrown monument future planet of the apes rider on horse futuristic advancements obsolete flying machine equipment forgotten after war concept art by yuri shwedoff moscow russia portfolio image sample artstatiuon.com
18 Sep 06:54

IKEA Instructions for Creating Movie Monsters

by A B

Created by illustrator and cartoonist Ed Harrington.

17 Sep 03:11

Deception

by Reza
08 Sep 22:54

cool dog riding water buffalo



cool dog riding water buffalo

08 Sep 22:54

pigeon riding terrapins



pigeon riding terrapins