CLOSE
Original image
YouTube / TASVideosChannel

Super Mario Bros. 3 in 3 Minutes

Original image
YouTube / TASVideosChannel

Super Mario Bros. 3 was one of the best Nintendo games ever released. In this video, we see a bizarre play-through of the game that reaches the Princess in just three minutes...without ever seeing Bowser. It exploits glitches in the game and extremely careful timing to achieve this effect. First, take a look (if you're short on time, just zip to 2:14 and watch for the crazy glitches after Mario jumps up a bit):

And now some context. This is what's called a "tool-assisted speedrun." Let's unpack that. A speedrun is completing a game in the minimum time possible. The "tool-assisted" bit is where this gets interesting; rather than a player sitting there with a Nintendo controller and playing the game live, this game was "played" by carefully scripting all of Mario's moves, frame by frame, and then using digital tools to perform those scripted inputs on a real NES.

The creators of this speedrun, who go by "Lord Tom" and "Tompa," explain their techniques in a long post using a good deal of technical jargon. The most interesting bit is under the heading "Wrong-warping SMB3." Here's a brief sample; note that the dollar-sign values are memory addresses within the game. Yes, this is highly technical:

Touching the glitch tile, an invisible note block, makes the processor try to update memory outside of the normal tile data, at an address ($9c70) that reprograms how the processor interprets addresses. This causes execution to jump to an unintended area of the ROM and execute incorrect instructions. Eventually, the stack overflows and it starts executing RAM instructions starting at address $0081, which is just before the location of the player x value at $0090 and enemy x values $0091-5.

...

To jump to the Princess, we need 3 consecutive x values to read, in order: 32, 225 or 227, 143. This results in the assembly instruction "JSR $8FE1", which reads as "Jump to the subroutine at address $8FE1."

...

Mario can only carry one shell at time. So to grab the ?'s shell, we need to throw the $0095 shell such that it doesn't despawn and also ends up where we can grab it again. There's not much margin for this, but it's just possible to throw the shell so it ends up spinning between the middle pipes down below. This lets Mario grab it after throwing the $0094 shell without breaking stride.

As we fall from the ?'s area, we now have the left piranha plant in $0093, the ?'s shell in $0094, and the first shell from the level entry in $0095. All that remains is to throw the two shells such that they hit the right x values on the same (single) frame the plant's x value hits 32...and then execute the pipe glitch on that same frame.

As Neo said in The Matrix, "Whoa."

(Via Devour.)

Original image
iStock // Ekaterina Minaeva
arrow
technology
Man Buys Two Metric Tons of LEGO Bricks; Sorts Them Via Machine Learning
May 21, 2017
Original image
iStock // Ekaterina Minaeva

Jacques Mattheij made a small, but awesome, mistake. He went on eBay one evening and bid on a bunch of bulk LEGO brick auctions, then went to sleep. Upon waking, he discovered that he was the high bidder on many, and was now the proud owner of two tons of LEGO bricks. (This is about 4400 pounds.) He wrote, "[L]esson 1: if you win almost all bids you are bidding too high."

Mattheij had noticed that bulk, unsorted bricks sell for something like €10/kilogram, whereas sets are roughly €40/kg and rare parts go for up to €100/kg. Much of the value of the bricks is in their sorting. If he could reduce the entropy of these bins of unsorted bricks, he could make a tidy profit. While many people do this work by hand, the problem is enormous—just the kind of challenge for a computer. Mattheij writes:

There are 38000+ shapes and there are 100+ possible shades of color (you can roughly tell how old someone is by asking them what lego colors they remember from their youth).

In the following months, Mattheij built a proof-of-concept sorting system using, of course, LEGO. He broke the problem down into a series of sub-problems (including "feeding LEGO reliably from a hopper is surprisingly hard," one of those facts of nature that will stymie even the best system design). After tinkering with the prototype at length, he expanded the system to a surprisingly complex system of conveyer belts (powered by a home treadmill), various pieces of cabinetry, and "copious quantities of crazy glue."

Here's a video showing the current system running at low speed:

The key part of the system was running the bricks past a camera paired with a computer running a neural net-based image classifier. That allows the computer (when sufficiently trained on brick images) to recognize bricks and thus categorize them by color, shape, or other parameters. Remember that as bricks pass by, they can be in any orientation, can be dirty, can even be stuck to other pieces. So having a flexible software system is key to recognizing—in a fraction of a second—what a given brick is, in order to sort it out. When a match is found, a jet of compressed air pops the piece off the conveyer belt and into a waiting bin.

After much experimentation, Mattheij rewrote the software (several times in fact) to accomplish a variety of basic tasks. At its core, the system takes images from a webcam and feeds them to a neural network to do the classification. Of course, the neural net needs to be "trained" by showing it lots of images, and telling it what those images represent. Mattheij's breakthrough was allowing the machine to effectively train itself, with guidance: Running pieces through allows the system to take its own photos, make a guess, and build on that guess. As long as Mattheij corrects the incorrect guesses, he ends up with a decent (and self-reinforcing) corpus of training data. As the machine continues running, it can rack up more training, allowing it to recognize a broad variety of pieces on the fly.

Here's another video, focusing on how the pieces move on conveyer belts (running at slow speed so puny humans can follow). You can also see the air jets in action:

In an email interview, Mattheij told Mental Floss that the system currently sorts LEGO bricks into more than 50 categories. It can also be run in a color-sorting mode to bin the parts across 12 color groups. (Thus at present you'd likely do a two-pass sort on the bricks: once for shape, then a separate pass for color.) He continues to refine the system, with a focus on making its recognition abilities faster. At some point down the line, he plans to make the software portion open source. You're on your own as far as building conveyer belts, bins, and so forth.

Check out Mattheij's writeup in two parts for more information. It starts with an overview of the story, followed up with a deep dive on the software. He's also tweeting about the project (among other things). And if you look around a bit, you'll find bulk LEGO brick auctions online—it's definitely a thing!

Original image
iStock
arrow
Health
200 Health Experts Call for Ban on Two Antibacterial Chemicals
June 21, 2017
Original image
iStock

In September 2016, the U.S. Food and Drug Administration (FDA) issued a ban on antibacterial soap and body wash. But a large collective of scientists and medical professionals says the agency should have done more to stop the spread of harmful chemicals into our bodies and environment, most notably the antimicrobials triclosan and triclocarban. They published their recommendations in the journal Environmental Health Perspectives.

The 2016 report from the FDA concluded that 19 of the most commonly used antimicrobial ingredients are no more effective than ordinary soap and water, and forbade their use in soap and body wash.

"Customers may think added antimicrobials are a way to reduce infections, but in most products there is no evidence that they do," Ted Schettler, science director of the Science and Environmental Health Network, said in a statement.

Studies have shown that these chemicals may actually do more harm than good. They don't keep us from getting sick, but they can contribute to the development of antibiotic-resistant bacteria, also known as superbugs. Triclosan and triclocarban can also damage our hormones and immune systems.

And while they may no longer be appearing on our bathroom sinks or shower shelves, they're still all around us. They've leached into the environment from years of use. They're also still being added to a staggering array of consumer products, as companies create "antibacterial" clothing, toys, yoga mats, paint, food storage containers, electronics, doorknobs, and countertops.

The authors of the new consensus statement say it's time for that to stop.

"We must develop better alternatives and prevent unneeded exposures to antimicrobial chemicals," Rolf Haden of the University of Arizona said in the statement. Haden researches where mass-produced chemicals wind up in the environment.

The statement notes that many manufacturers have simply replaced the banned chemicals with others. "I was happy that the FDA finally acted to remove these chemicals from soaps," said Arlene Blum, executive director of the Green Science Policy Institute. "But I was dismayed to discover at my local drugstore that most products now contain substitutes that may be worse."

Blum, Haden, Schettler, and their colleagues "urge scientists, governments, chemical and product manufacturers, purchasing organizations, retailers, and consumers" to avoid antimicrobial chemicals outside of medical settings. "Where antimicrobials are necessary," they write, we should "use safer alternatives that are not persistent and pose no risk to humans or ecosystems."

They recommend that manufacturers label any products containing antimicrobial chemicals so that consumers can avoid them, and they call for further research into the impacts of these compounds on us and our planet.

SECTIONS
BIG QUESTIONS
arrow
BIG QUESTIONS
WEATHER WATCH
BE THE CHANGE
JOB SECRETS
QUIZZES
WORLD WAR 1
SMART SHOPPING
STONES, BONES, & WRECKS
#TBT
THE PRESIDENTS
WORDS
RETROBITUARIES