Alien Art Drawn With Surprisingly Simple Math

Programmer [aemkei] Tweeted the formula (x ^ y) % 9 alongside code for more “alien art”. But how can a formula as simple as (x ^ y) % 9 result in a complex design? The combination of Bitwise XOR (^) and Modulo (%) generate a repeating pattern that’s still complex enough to satisfy the eye, and it’s ok if that doesn’t sound like an explanation. Bitwise operations are useful when working with memory and shift registers, but also worth learning if you want to drive lines or matrices of LEDs or interpret combinations of multiple switches, or in this case a great way to throw an interesting test pattern up on a new flip-dot display or low-res LED matrix. Are you into it? We are, so let’s jump in.

XOR Truth Table
0b00 0b01 0b10 0b11
0b00 0b00 0b01 0b10 0b11
0b01 0b01 0b00 0b11 0b10
0b10 0b10 0b11 0b00 0b01
0b11 0b11 0b10 0b01 0b00

Bitwise XOR compares each binary digit of the two inputs. The XOR returns a 1 when only one of the two digits is a 1, otherwise, it returns a zero for that position. Let’s say the coordinates were 3, 2. Converted to binary we have 0b11 and 0b10. From this truth table, we can see the most-significant digits are both 1, returning a 0, while only one of the least-significant digits is a 1, so the comparison returns a 1.

Moving onto the %, which is the Modulo operator has nothing to do with percentages. This operator divides two numbers and returns the remainder if any. Take 9 % 5. When dividing 9 by 5, 5 goes in once with a remainder of 4 so 9 % 5 = 4. Now our original formula from the top will draw a black box for every ninth number except that the bitwise XOR throws a wrench into that count, varying how often a number divisible by 9 appears and supplying the complexity necessary for these awesome patterns.

detail of aemkei's xor patterns

What are the most interesting designs can you create in a simple formula?

Read Your Movies As Automatically Generated Comic Books

A research paper from Dalian University of Technology in China and City University of Hong Kong (direct PDF link) outlines a system that automatically generates comic books from videos. But how can an algorithm boil down video scenes to appropriately reflect the gravity of the scene in a still image? This impressive feat is accomplished by saving two still images per second, then segments the frames into scenes through analysis of region-of-interest and importance ranking.

movie to comic book pipeline diagram

For its next trick, speech for each scene is processed by combining subtitle information with the audio track of the video. The audio is analyzed for emotion to determine the appropriate speech bubble type and size of the subtitle text. Frames are even analyzed to establish which person is speaking for proper placement of the bubbles. It can then create layouts of the keyframes, determining panel sizes for each page based on the region-of-interest analysis.

The process is completed by stylizing the keyframes with flat color through quantization, for that classic cel shading look, and then populating the layouts with each frame and word balloon.

The team conducted a study with 40 users, pitting their results against previous techniques which require more human intervention and still besting them in every measure. Like any great superhero, the team still sees room for improvement. In the future, they would like to improve the accuracy of keyframe selection and propose using a neural network to do so.

Thanks to [Qes] for the tip!

Surf’s Up, A Styrofoam Ball Rides The Waves To Create A Volumetric Display

We are big fans of POV displays, particularly ones that move into 3D. To do so, they need to move even faster than their 2D cousins. [danfoisy] built a volumetric display that doesn’t move LEDs or any other digital display through space, or project light onto a moving surface. All that moves here is a bead of styrofoam and does so at up to 1 meter per second. Having low mass certainly helps when trying to hit the brakes, but we’re getting ahead of ourselves.

danfoisy vdatp 3d simulation

[danfoisy] and son built an acoustic levitator kit from [PhysicsGirl] which inspired the youngster’s science fair project on sound. See the video by [PhysicsGirl] for an explanation of levitation in a standing wave. [danfoisy] happened upon a paper in the Journal Nature about a volumetric display that expanded this one-dimensional standing wave into three dimensions. The paper described using a phased array of ultrasonic transducers, each with a 40 kHz waveform.

After reading the paper and determining how to recreate the experiment, [danfoisy] built a 2D simulation and then another in 3D to validate the approach. We are impressed with the level of physics and programming on display, and that the same code carried through to the build.

[danfoisy] didn’t stop with the simulations, designing and building control boards for each 100 x 100 10 x 10 grid of transducers. Each grid is driven by 2 Intel Cyclone FPGAs and all are fed 3D shapes by a Raspberry Pi Zero W. The volume of the display is 100 mm x 100 mm x 145mm and the positioning of the foam ball is accurate down to .01 mm though currently there is considerable distortion in the positioning.

Check out the video after the break to see the process of simulating, designing, and testing the display. There are a number of tips along the way, including how to test for the polarity of the transducers and the use of a Python script to place the grids of transducers and drivers in KiCad.

danfoisy vdatp schematic  danfoisy vdatp board layout

Continue reading “Surf’s Up, A Styrofoam Ball Rides The Waves To Create A Volumetric Display”

Tether Tames Temperamental Typing

[chadaustin] has a favorite keyboard with a great ergonomic shape, key travel distance, and size, but after switching to Windows 10, the wireless connection introduced a terrible delay. Worse yet, the receiver is notoriously susceptible to interference from USB 3.0 hubs. To provide 128-bit AES encryption, the receiver is paired with the keyboard at the factory and cannot be replaced. If you lose that, you gain a highly ergonomic paper-weight. The solution for [chadaustin] was tethering the keyboard and receive several crash-courses in hardware hacking along the way. As evidenced by the responses to this project on ycombinator, many long-time fans of the Microsoft Sculpt Ergonomic Keyboard, introduced in 2013, suffer similar issues.

chadaustin's sculpt keyboard USB board layout
KiCad USB controller board layout

We really appreciate that [chadaustin] took an incremental approach, tackling one problem at a time and getting help from others along the way for first attempts at many complex steps. The proof-of-concept involved hand-soldering each lead from the keyboard matrix’s test pads to a QMK Proton C, which worked but couldn’t fit inside the keyboard’s case. For a more permanent and tidy solution, [chadaustin] tried a ribbon-cable breakout board and other microcontrollers, but none of those were compact enough to fit inside the case either. This required a custom PCB, another first for [chadaustin].

After a one-day intro to KiCad, [chadaustin] dug into the datasheets, completed a schematic for the board, and generously shared the process of choosing components and creating the layout. [chadaustin] ordered a board and found the mounting holes’ placement needed to be shifted.

With the full matrix mapped by [johnmilkspill], flashing QMK onto the AT90USB1286 controller went fairly smoothly. [chadaustin] chose to map both sides of the split spacebar back to the space key but did add a feature by repurposing the battery indicator LED to Caps Lock. And the results?

chadaustin's sculpt keyboard USB controller fit into case
USB controller fits into the plastic case, wires added to ISP for bootloader button

According to testing done with Is It Snappy?, the latency dropped from the wireless 78 ms down to 65 ms over USB. More importantly, this latency is now consistent, unaffected by USB hubs, and there is no receiver to lose. Of course, [chadaustin] has ideas for future improvement, including regaining the multimedia function keys, as these kinds of hacks are never really done; they are just in the current revision. No word on the fate of the detached number pad, but that likely needs its own tether and is a project for another day.

Thanks for the tip [Linus Söderlind]

Cyberdeck Running On Apple Silicon, Though An A12 Not An M1

[Alta’s Projects] built a two-in-one cyberdeck that not only contains the requisite Raspberry Pi (a zero in this case) but also eschews a dumb LCD and uses an iPad mini 5 for a display.

We need to address the donor case right away. Some likely see this as heresy, and while we love to see vintage equipment lovingly restored, upcycling warms our hearts and keeps mass-produced plastic out of landfills too. The 1991 AST 386SX/20 notebook in question went for $45 on an online auction and likely was never destined for a computer museum.

Why is Cupertino’s iOS anywhere near a cyberdeck? If a touch screen is better than an LCD panel, a tablet with a full OS behind it must be even better. You might even see this as the natural outgrowth of tablet cases first gaining keyboards and then trackpads. We weren’t aware that either was possible without jailbreaking, but [Alta’s Projects] simply used a lighting-to-USB dongle and a mini USB hub to connect the custom split keyboard to the iPad and splurged on an Apple Magic Trackpad for seamless and wireless multi-touch input.

Alta's Projects Cyberdeck Internal USB Wiring
Internal USB Wiring, Charging Circuit, and Pi Zero

The video build (after the break) is light on details, but a quick fun watch with a parts list in the description. It has a charming casual feel that mirrors the refreshingly improvisational approach that [Altair’s Projects] takes to the build. We appreciate the nod to this cyberdeck from [Tinfoil_Haberdashery] who’s split keyboard and offset display immediately sprang to mind for us too. The references to an imagined “dystopian future” excuse the rough finish of some of the Dremel cuts and epoxy assembly. That said, apocalypse or not, the magnets mounted at both ends of the linear slide certainly are a nice touch.

Continue reading “Cyberdeck Running On Apple Silicon, Though An A12 Not An M1”

Give Your Smart Home A Green Thumb With MQTT

We have all been stuck inside for too long, and maybe that’s why we have recently seen a number of projects attempting to help humans take better care of their housemates from Kingdom Plantae. To survive, plants need nutrients, light, and water. That last one seems tricky to get right; not too dry and not drowning them either, so [rbaron’s] green solder-masked w-parasite wireless soil monitor turns this responsibility over to your existing home automation system.

w-parasite MQTT diagram

Like this low-power soil sensor project and the custom controller for six soil sensors, [rbaron’s] w-parasite uses a “parasitic capacitive” moisture sensor to determine if it’s time to water plants. This means that unlike resistive soil moisture sensors, here the copper traces are protected from corrosion by the solder mask. For those wondering how they work, [rbaron]’s Twitter thread has a great explanation.

The “w” in the name is for WiFi as the built-in ESP-32 module then takes the moisture reading and sends an update wirelessly via MQTT. Depending on the IQ of your smart-home setup, you could log the data, route an alert to a cellphone, light up a smart-bulb, or even switch on an irrigation system.

w-parasite circuit board in a potted plant[rbaron] has shared a string of wireless hacks, controlling the A/C over Slack and a BLE Fitness Tracker that inspired more soldering than jogging. We like how streamlined this solution is, with the sensor, ESP-32 module, and battery all in a compact single board design. Are you asking yourself, “but how is a power-hungry ESP-32 going to last longer than it takes for my geraniums to dry out?” [rbaron] is using deep sleep that only consumes 15uA between very quick 500ms check-ins. The rechargeable LIR2450 Li-Ion coin cell shown here can transmit a reading every half hour for 90 days. If you need something that lasts longer than that, use [rbaron]’s handy spreadsheet to choose larger batteries that last a whole year. Though, let’s hope we don’t have to spend another whole year inside with our plant friends.

We may never know why the weeds in the cracks of city streets do better than our houseplants, but hopefully, we can keep our green roommates alive (slightly longer) with a little digital nudge.