Generating Instead Of Storing Meshes

The 64kB is a category in the demoscene where the total executable size must be less than 65,536 bytes, and at that size, storing vertexes, edges, and normal maps is a waste of space. [Ctrl-Alt-Test] is a French Demoscene group that has been doing incredible animations for the last 13 years. They’ve written an excellent guide on how they’ve been procedurally generating the meshes in their demos.

It all starts with cubes. By stacking them, overlaying them, reusing them, and tiling them you can get better compression than raw vertexes. Revolution was the next trick, as it uses just a few points, plotting it via Catmul-Rom splines, and revolving around an axis. The numbers are pairs of 32-bit floats and before compression, a detailed pawn on a chess board can weigh in at just 40 bytes. Just these few techniques can take you surprisingly far (as seen in the picture above).

They later worked on deforming cubes and placing them into a semi-randomized column, which happened to look a lot like plants. This isn’t the first generated vegetation we’ve seen, and the demoscene technique focused more on getting the shape and setting the mood rather than being accurate.

Signed distance fields are another useful trick that allows you to generate a mesh by implementing a signed distance function and then running a marching cubes algorithm on it. In a nutshell, a signed distance function just returns the distance to the closest point on a surface from a given point. This means you can describe shapes with just a single mathematical equation. As you can imagine, this is a popular technique in the demoscene world because it is so space efficient in terms of code and data. [Ctrl-Alt-Test] even has a deep dive into one of their projects, Immersion, with a breakdown of where the space is allocated.

There are plenty of other tips and tricks here, such as generating textures and developing a C++ hot reload system for faster iteration. It’s just incredible that the executable that plays the whole video is smaller than just a JPEG screenshot of the video. It’s a reminder that the demoscene is still fascinating with new tricks and experiences even as the hardware stays the same. Continue reading “Generating Instead Of Storing Meshes”

Two-Tube Spy Transmitter Fits In The Palm Of Your Hand

It’s been a long time since vacuum tubes were cutting-edge technology, but that doesn’t mean they don’t show up around here once in a while. And when they do, we like to feature them, because there’s still something charming, nay, romantic about a circuit built around hot glass and metal. To wit, we present this compact two-tube “spy radio” transmitter.

From the look around his shack — which we love, by the way — [Helge Fykse (LA6NCA)] really has a thing for old technology. The typewriter, the rotary phones, the boat-anchor receiver — they all contribute to the retro feel of the space, as well as the circuit he’s working on. The transmitter’s design is about as simple as can be: one tube serves as a crystal-controlled oscillator, while the other tube acts as a power amplifier to boost the output. The tiny transmitter is built into a small metal box, which is stuffed with the resistors, capacitors, and homebrew inductors needed to complete the circuit. Almost every component used has a vintage look; we especially love those color-coded mica caps. Aside from PCB backplane, the only real nod to modernity in the build is the use of 3D printed forms for the coils.

But does it work? Of course it does! The video below shows [Helge] making a contact on the 80-meter band over a distance of 200 or so kilometers with just over a watt of power. The whole project is an excellent demonstration of just how simple radio communications can be, as well as how continuous wave (CW) modulation really optimizes QRP setups like this.

Continue reading “Two-Tube Spy Transmitter Fits In The Palm Of Your Hand”

Magic 8 Ball Provides Tech Support

ChatGPT might be making the news these days for being able to answer basically any question it’s asked, those of us who are a little older remember a much simpler technology that did about the same thing. The humble “Magic 8 Ball” could take nearly the same inputs, provided they were parsed in simple yes/no form, and provide marginal help similar to the AI tools of today. For a toy with no battery or screen, this was quite an accomplishment. But the small toy couldn’t give specific technical support help, so [kodi] made one that can.

The new 8 Ball foregoes the central fluid-filled chamber for an STM32 Blue Pill board with a few lithium batteries to power it. The original plastic shell was split in two with a hacksaw and fitted with a 3D printed ring which allows the two halves to be reconnected and separated again when it needs to charge. It uses a circular OLED to display the various messages of tech support, which are displayed when an accelerometer detects that the toy has been shaken.

Granted, most of the messages are about as helpful to solving a tech support issue as the original magic 8 Ball’s would have been, but we appreciate the ingenuity and carefree nature of a project like this. It also did an excellent job at operating in a low-power state as well, to avoid needing to charge it often. There have been a few other digital conversions of these analog fortune tellers as well, like this one which adds GIFs to each of the original answers.

Recreating One Of History’s Best Known Spy Gadgets

[Machining and Microwaves] got an interesting request. The BBC asked him to duplicate the Great Seal Bug — the device the Russians used to listen covertly to the US ambassador for seven years in 1945. Turns out they’re filming a documentary on the legendary surveillance device and wanted to demonstrate how it worked.

The strange thing about the bug is that it wasn’t directly powered. It was actually a resonant cavity that only worked when it was irradiated with an external RF energy. Most of the video is background about the bug, with quite a few details revealed. We particularly liked the story of using a software defined radio (SDR) to actually make the bug work.

As you might expect, things didn’t go smoothly. Did they ever get results on camera? Watch the video, and you can find out. This is just the first of six videos he plans to make on the topic, and we can’t wait for future videos that cover the machining and more technical details.

We’ve examined the Theremin bug before. There’s a definite cat-and-mouse dynamic between creating bugging devices and detecting them.

Continue reading “Recreating One Of History’s Best Known Spy Gadgets”

Vintage Tektronix Virtual Graticule

Oscilloscopes are great for measuring the time and voltage information of a signal. Some old scopes don’t have much in the way of markings on the CRT, although eventually, we started seeing scales that allowed you to count squares easily. Early scopes had marks on the glass or plastic over the CRT, but as [Vintage TEK Museum] points out, this meant for best accuracy, you had to look directly at the CRT. If you were at an angle horizontally or vertically, the position of the trace would appear to move concerning the lines on the screen. You can see the effect in the video below.

The simple solution was to mark directly into the phosphor, which minimized the effect. Before that was possible, [Bob Anderson] invented a clever solution, although Tektronix didn’t produce any scopes using it for some reason. The idea was the virtual oscilloscope graticule, and it was quite clever.

The idea was to put the graticule on a semi-reflective mirror. Looking through the assembly, you would actually see the trace and the reflection of the graticule in the mirror. The resulting image is perfectly aligned if the assembly is constructed properly. You can, at some angles, see both the front and reflected graticules.

According to the video, management was not impressed because someone other than [Anderson] showed a poor-quality prototype to them. By 1962, the graticule in the phosphor took over, and there was no need for [Anderson’s] clever invention.

These days, a graticule is just bits on the screen. Even if you roll your own.

Continue reading “Vintage Tektronix Virtual Graticule”

DOOM Ported To A Single LEGO Brick

By now you’ve all seen the tiny LEGO brick with a working screen in it. The work of one [James “Ancient” Brown], it was truly a masterpiece of miniaturization and creativity. Since then, [James] hasn’t stopped innovating. Now, he’s demoing a playable version of DOOM running on a single plastic brick.

We’ve covered the construction of these astounding screen bricks before. Long story short, [James] designed a tiny PCB that hosts an RP2040 microcontroller which is then hooked up to a tiny OLED screen. The components are placed in a silicone mold, which is then filled with transparent resin to form the brick. The screen is then powered via contacts in the bottom, much like older-style LEGO motors.

Early experiments involved running various graphics to emulate a spaceship dashboard, but [James] has now gone much further. He’s implemented RP2040-doom to run the game. It uses tilt controls thanks to an accelerometer, combined with capacitive touch controls for shooting. The monochrome OLED is driven very fast with a special library of [James’] own creation to create three levels of grayscale to make the game actually visible and (just barely) playable.

It’s a hack, of course, and the controls are far from perfect. Nobody’s speed-running E1M1 on [James’s] LEGO brick, to be sure. Perchance. With that said, it’s still a glorious piece of work nonetheless. Just imagine, sitting with friends, and announcing you’re going to play some DOOM — only to pluck a piece of LEGO out of your pocket and start blasting away at demons.

Just because [James] doesn’t know when to quit, we’re going to lay down the gauntlet. Let’s get network play happening on these things, yeah?
Continue reading DOOM Ported To A Single LEGO Brick”

Creating GIFs For The Channels Between Channels

In the United States, analog TV broadcasting officially ended in 2009. While the transition wasn’t without hiccups, we did lose something along the way. For [Emily Velasco], she misses the channels between channels — where an analog TV isn’t quite tuned right and the image is smeared and distorted. A recent bug in one of her projects led to her trying to recreate the experience of the in-between on a CRT.

One of [Emily]’s other projects involved generating composite video signals from an ESP32 microcontroller. While experimenting with adding color to the output signal, the image came out incredibly scrambled. She had made an error in the stride, which smeared the image across the screen. This immediately brought back memories of old analog TV sets. A quick potentiometer allowed her to control the stride error and she wrote some code to break the GIF up into discrete bitmaps for display since the GFX library handles GIFs differently than static images. Next up was vertical hold, which was accomplished by shifting the Y coordinates. With some help from [Roger], there was now a handy GIF library that would draw GIFs line by line with the composite video effects.

She used a Goldbeam portable CRT, soldered the tuning potentiometer to the ESP32, and set up 10 different GIFs to act as “channels” with space in between. It’s a fun and quirky idea, which is exactly the sort of thing [Emily] has been encouraging people to do.

Continue reading “Creating GIFs For The Channels Between Channels”