Turning Video Game Sprites Into 3D Objects

Anyone who has played Minecraftfor a good amount of time should have a good grasp on making 3D objects by placing voxels block by block. A giant voxel art dragon behind your base is cool, but what about the math behind your block based artwork? [mikolalysenko] put together a tutorial for making 3D objects out of video game sprites and covers a lot of the math involved in turning pixels into voxels.

The process of modeling a 3D object from a series of 2D images is a very well-studied computer vision problem called multiview stereo reconstruction. This process has been used to build 3D models of random objects with devices such as the Stanford spherical gantry. Unfortunately the math for this algorithm is a mess, but there is another way: using photo hulls (PDF warning) to find the largest possible object from a series of images showing the top, bottom, left, right, front, and back views.

[mikolaly] put together an algorithm to produce 3D images from a series of images and even went so far as to build a web-based shape carving editor. With this web app, it’s possible to make 3D objects simply by inputting a bunch of colored pixels onto six 2D grids.

Once the models were complete, [mikolaly] sent some of the 3D models off to Shapeways for 3D printing. He’s completed Meat boy, Mario, and Link 3D sprites, all available for sale.

Now the only thing left to do is build a script to turn these objects into Minecraft object schematics.

The Python Programming Language For Physical Hacking

We see projects here all the time that blend computing with the real world. Some people are naturally stronger on the mechanical end of things, whereas some are better with electronics or coding. All three specialities can be needed depending on your project. If your weakness lies in making a computer do your bidding, I might suggest that the Python language is a good one to learn.

I’ve been going through Learn Python the Hard Way, which is offered for free online, or you can pay for it if you so choose. I’ve published my thoughts on lessons 1-10 and 11-20 so far. As a mechanical engineer with limited (but not totally nonexistent) programming skills, it’s been an excellent experience so far.

If you’re wondering if Python is a good language to learn if you’d like to participate in [HAD] style projects, why not check out the following projects featured here:

Or just do a search of [HAD], and you’ll find many other projects for inspiration. If you’ve got a Python project to share, be sure to tell us about it in the comments!

Following Faces With OpenCV And Arduino

[youtube=http://www.youtube.com/watch?v=lD4uFD7j0AU&w=470]

[Marco] has had some fun with OpenCV in the area of face tracking. Using an older laser project, he has cobbled together a system that will track a face and put a laser on it. While he is just using this as a proof of concept, it goes without saying that you probably shouldn’t mount a laser on a face tracker. However, stuffing this into a myKeepon wouldn’t be a horrible thing.

[Marco] shares the process of getting the OpenCV bit working in this writeup, you’ll have to refer back to his laser gun project for the physical build.

 

[via Adafruit]

 

Web Game Bot Coded With Python

We find the programming challenge of game-playing bots to be fascinating. Take a look at this Python bot which plays Burrito Bison all the way through (video after the break). This is a totally pedantic exercise which has no purpose, other than to hone your mastery of a certain programming problem. And to that we say Bravo!

We looked in on a similar project which used some C# code to dominate the game Bejeweled Blitz. We’re not fantastic at C# and that code was never made public. But [Audionatics] has released this code through Github, and it’s written in Python which is a language in which we’re well versed.

The script monitors pixel locations to use as an input, which [Audionautics] admits is very error-prone. But if everything is setup just right it works like a charm. He’s also using the PyWin package which we believe is what lets the script move the cursor and register button clicks. We think this is really fun, but it make us wonder about the black-hat possibilities. What are the chances this could be turned into a gambling bot? Scary thought, huh?

Continue reading “Web Game Bot Coded With Python”

Circuit Playground – An Electronics Reference App From Adafruit

It’s not everyday that we review software around here, but the folks at Adafruit recently put together an iOS app that I figured might be of interest. Their iPad/iPhone compatible application is called “Circuit Playground”, and it includes all sorts of handy electronics reference tools. For the context of this review, it should be noted that I paid for the application myself, and that I have had no communication with the Adafruit team regarding my assessment of the app.

Continue reading “Circuit Playground – An Electronics Reference App From Adafruit”

Using Google Documents As A Web Proxy

As weird as it might sound, there’s a way to use Google documents as a web proxy. The image above is a screenshot of [Antonio] demonstrating how he can view text data from any site through the web giant’s cloud applications. Certain sites may be blocked from your location, but the big G can load whatever it wants. If all you need is the text, then so can you.

The hack takes advantage of the =IMPORTDATA() function of Google Spreadsheet. We guess the command is meant to make import of XML data possible, but hey, that’s pretty much what HTML data is too, right? But what good it the raw webpage code in a spreadsheet? This is where [Antonio] made a pretty brilliant leap in putting this one together. He authored a bookmarklet that provies a navigation interface, hides the raw code which is stored in the spreasheet, and renders it in the browser. This ties together a user supplied URL, reloading data on the hidden spreadsheet and refreshing the window as necessary. See for yourself in the clip after the break.

Continue reading “Using Google Documents As A Web Proxy”

How To Add Flair To A Webpage That Shows Your Project Data

This temperature display may not knock your socks off, but it’s a simple demonstration of how you can used vector graphics as a web readout for data (translated). [Luca] wrote this four page tutorial to help others, he makes it look really easy, and the sky’s the limit on eye candy once you get he basics in place.

The first step is to create the dynamic SVG (vector graphic) file using Inkscape that will be used by the webpage. This starts with a static background, in this case the grey parts of the thermometer which will not change. Over the top the blue parts were added, with just a bit of XML editing to give those parts a hook which will be used in the next step. The demo above will have a moving blue bar and changing numeric output to match data coming in from a temperature sensor.

An SVG file is just a text file that is rendered as a graphic when loaded. [Luca] shows you how to used the identifiers set up when making the graphic to dynamically change the size and value of the blue parts with server-side PHP before sending the graphic to the browser. With that in place you just need to give the PHP file access to the data. He shows how to use the Pachube API but you could just as easily get this via serial or otherwise.