Building A Raycaster Within Bash

Wolfenstein 3D was a paradigm-shifting piece of software, using raycasting techniques to create a game with pseudo-3D graphics. Now, [izabera] has done something very similar, creating a raycasting display engine that runs entirely within bash.

The work was developed with an eye cast over an existing raycasting tutorial online. As you might imagine, implementing these graphical techniques in a text console proved difficult. The biggest problem [izabera] encountered was that bash is slow. It’s not supposed to display full frames of moving content at 25+ fps. It’s supposed to display text. Making it display graphics by using tons of colorful characters is really pushing the limits. Bash also doesn’t have any ability to work with floating points, so all the calculations are done with massive integers. Other problems involved the limited ways to read the keyboard in bash, and keeping track of the display as a whole.

It’s neat reading about how this was pulled off—specifically because it was hard. It might not be the kind of project you’d ever implement for serious work, but there are learnings to be had here that you won’t get anywhere else. Code is on Github, while there’s a visual storytelling of how it came together on imgur.

We’ve seen similar work before—with magical 3D graphics generated in Microsoft Excel. Will wonders never cease? We hope not, because we always like to see new ones on the tipsline. Keep us busy!

Building A 3D-Printed Strandbeest

The Strandbeest is a walking machine, a creation of the celebrated artist Theo Jansen. They can look intimidating in their complexity, but it’s quite possible to build your own. In fact, if you’ve got a 3D-printer, it can be remarkably straightforward, as [Maker 101] demonstrates.

The build relies on an Arduino Uno as the brains. It’s equipped with an L293D motor driver shield to run two DC gear motors which drive the walking assemblies. Power is courtesy of a 3-cell lithium-polymer battery. The chassis, legs, and joints are all 3D-printed, and rather attractively in complimentary colors, we might add.

Controlling this little Strandbeest is simple. [Maker 101] gave the Arduino an infrared sensor which can pick up signals from a simple IR remote control. It can be driven backwards and forwards or turned left and right. What’s more, it looks particularly elegant as it walks—a hallmark of a good Strandbeest design.

Design files are available online for the curious. We love a good Strandbeest build, and some can even be useful, too! Video after the break.
Continue reading “Building A 3D-Printed Strandbeest”

Taser Ring Is Scary Jewelry You Shouldn’t Build

Officially, the term “taser” refers to a particular brand of projectile-firing electric stun gun. However, the word is also colloquially used to refer to just about any device intended for delivering electric shocks to an adversary. The taser ring from [Penguin DIY] definitely fits that description, though we’d strictly advise you not to consider building this at home.

The build is a hacky one. An arc generator circuit was pulled out from a jet cigarette lighter, and reconfigured to fit in a small ring-based form factor. It was hooked up with a power switch and a small bank of 30 mAh lithium polymer cell for power, and a compact USB-C charger board was installed to keep the batteries juiced. The electronics were then delicately assembled into a ring-shaped mold, which was injected with resin to produce the final ring. Once cast, a pair of small metal electrodes were installed on the outside. Activating the taser function is as simple as squeezing the ring—easy to do just by making a fist.

We’ve seen projects like these before; our advice is usually to avoid them unless you really know what you’re doing. Whether you end up shocking someone else or accidentally shocking yourself, the results tend to be bad. The latter seems particularly easy to do if you’re wearing this thing on your finger. Given it’s a ring, don’t expect to be able to pull it off in a hurry, either. It’s hard to see how that ends well.

Continue reading “Taser Ring Is Scary Jewelry You Shouldn’t Build”

Gimbal Clock Relies On Servos For Its Cool Movements

In the annals of human history, clocks got boring there for a while. Most were just variations on hands spinning in a circle, with the occasional tweeting bird mechanism to liven things up. These days, we’re treated to all kinds of original and oddball designs, like this neat gimbal clock from [Twisted&Tinned].

The concept of the build is straightforward enough. It has four main vertical arms, each with a servo at the base that rotates about a vertical axis. Upon each arm are between one and three servos which rotate 3D printed structures in the shape of numbers. A Wemos D1 Mini microcontroller commands the servos to the correct positions to display the current time. It also uses its WiFi connection to get accurate time updates directly from a network time server.

It’s quite an artistic build—and it’s rather enjoyable to watch this one flex and twist its way into displaying the right time. It’s also easier to read at a glance than some of the more unintelligible designs out there. Indeed, we see all kinds of neat and innovative clocks around these parts.

Continue reading “Gimbal Clock Relies On Servos For Its Cool Movements”

The Many Leaning Towers Of Santos, Brazil

If you’ve ever gazed at the shoreline of Santos, Brazil, and felt like something was tugging at your inner eye level, you’re not alone. In fact, you’ve spotted one of the world’s most bizarre architectural phenomena.

Santos is an interesting contradiction—it’s a sunny coastal city with pristine beaches that also plays host to a bustling port. What draws the eye, however, is the skyline—it’s decidedly askew. This isn’t a Photoshop job or some avant-garde urban planning experiment, either. It’s a consequence of engineering hubris, poor planning, and geology just doing its thing.

Continue reading “The Many Leaning Towers Of Santos, Brazil”

Homebrew Retro Console Runs On PIC32

[Chad Burrow] decided to take on a noble task—building a “retro” style computer and video game console. Only, this one is built using somewhat modern hardware—relying on the grunt of the PIC32MZ2048EFH144 to get the job done. Meet the Acolyte Hand PIC’d 32.

It’s name might be a mouthful, but that chip can pull off some great feats! With a clock speed of 200 MHz, it’s not  short on processing power, though RAM and flash storage are somewhat limited at just 512 KB and 2MB respectively. [Chad] was able to leverage those constraints to get a VGA output working at a resolutions up to 800 x 600, with up to 65,000 colors—though 256 colors is more practical due to memory concerns. The Acolyte Hand also rocks two 8-bit audio channels. It has a pair of Genesis-compatible controller ports as well as PS/2 and USB for keyboards and mice, along with more modern Xbox 360 controllers.

[Chad] cooked up some software to put it through its paces, too. It’s got a Tetris clone on board, and can also run Game Boy games at full speed via the Peanut-GB emulator. That provides for a pretty rich game library, though [Chad] notes he plans to develop more native video games for his system to demo at his local college. Design files are on Github for the curious.

This project is a great example of just how powerful modern microcontrollers have become. Once upon a time, just driving a simple black-and-white graphical LCD might have taken some real effort, but today, there are pixels and clock cycles to spare in projects like these. Truly a wonderous world we live in!

Electromechanical 7-Segment Display Is High Contrast Brilliance

The seven-segment display is most well known in LED form, but the concept isn’t tied to that format. You can build a seven-segment display out of moving parts, too. [tin-foil-hat] has achieved just that with a remarkably elegant design.

As you might expect, the build relies heavily on 3D-printed components—produced in white and black plastic to create a high-contrast display. It’s a simple choice that makes the display easy to read in a wide variety of lighting conditions, and far less fussy than toying with LEDs and diffusers and all that.

Actuation of each display segment is achieved electromagnetically. Effectively, each segment behaves like a flip dot, with the orientation controlled by energizing one of two electromagnets per segment. Controlling the electromagnets is an ESP32, which is hooked up to the various segments via a Darlington transistor array, with multiplexing used to minimize the number of IO pins required. A shift register was also employed to let the microcontroller easily drive four of these electromechanical digits.

It’s a simple build, well explained—and the final result is aesthetically pleasing. We’ve seen a few builds along these lines before, albeit using altogether different techniques. Lots of different techniques, in fact! Video after the break.

Continue reading “Electromechanical 7-Segment Display Is High Contrast Brilliance”