Dillo Turns 25, And Releases A New Version

The chances are overwhelming, that you are reading this article on a web browser powered by some form of the Blink or WebKit browser engines as used by Google, Apple, and many open source projects, or perhaps the Gecko engine as used by Firefox. At the top end of the web browser world there are now depressingly few maintained browser engines — we think to the detriment of web standards evolution.

Moving away from the big players though, there are several small browser projects which eschew bells and whistles for speed and compactness, and we’re pleased to see that one of the perennial players has released a new version as it passes its quarter century.

Dillo describes itself as ” a fast and small graphical web browser”, and it provides a basic window on the web with a tiny download and the ability to run on very low-end hardware. Without JavaScript and other luxuries it sometimes doesn’t render a site as you’d see it in Chrome or Firefox, but we’re guessing many users would relish some escape from the web’s cycle-sucking garbage. The new version 3.2.0 brings bug fixes, as well as math formula rendering, and navigation improvements.

The special thing about Dillo is that this is a project which came back from the dead. We reported last year how a developer resurrected it after a previous release back in 2015, and it seems that for now at least it has a healthy future. So put it on your retro PC, your original Raspberry Pi, or your Atari if you have one, and try it on your modern desktop if you need reminding just how fast web browsing can be.

This isn’t the only interesting browser project on the block, we’re also keeping an eye on Ladybird, which is aiming for those big players rather than simplicity like Dillo.

Thanks [Feinfinger] for the tip.

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!

Fighting To Keep Bluetooth Thermometers Hackable

Back in 2020, we first brought you word of the Xiaomi LYWSD03MMC — a Bluetooth Low Energy (BLE) temperature and humidity sensor that could be had from the usual sources for just a few dollars each. Capable of being powered by a single CR2032 battery for up to a year, the devices looked extremely promising for DIY smart home projects. There was only one problem, you needed to use Xiaomi’s app to read the data off of the things.

Enter [Aaron Christophel], who created an open source firmware for these units that could easily be flashed using a web-based tool from a smartphone in BLE range and opened up all sorts of advanced features. The firmware started getting popular, and a community developed around it. Everyone was happy. So naturally, years later, Xiaomi wants to put a stop to it.

Continue reading “Fighting To Keep Bluetooth Thermometers Hackable”

Nice PDF, But Can It Run DOOM? Yup!

DOOM is a classic game to implement on a variety of platforms, but doompdf by [ading2210] is one we didn’t see coming. It runs a bit slow and controls are a little awkward but it does run. Entirely within a PDF file, at that.

How is this possible? PDFs are technically capable of much more than just displaying static content, and support JavaScript with their own library of functions. Adobe Acrobat implements the full spec, but modern web browsers implement at least a subset of the functionality in a sandboxed JavaScript runtime environment. Input and output are limited to things one might expect from a fancy PDF form (text input boxes, clickable buttons, things of that nature) but computation-wise, just about anything goes.

Continue reading “Nice PDF, But Can It Run DOOM? Yup!”

Procedurally Generated Terrain In OpenSCAD

We’re big fans of OpenSCAD here at Hackaday — it’s free and open source software, runs on pretty much anything, and the idea of describing objects via code seems like a natural fit for producing functional parts. Rather than clicking and dragging elements on the screen, you can knock out a quick bracket or other simple component with just a few lines of code. But one of the things we don’t often get a chance to showcase is the incredible potential of generating 2D and 3D objects algorithmically.

In a recent Reddit post, [ardvarkmadman] dropped an extremely impressive snippet of OpenSCAD code that he calls TerrainGen. In fewer than fifteen lines of code, it’s able to create randomized “islands” which range from simple plateaus to craggy mountain ranges. After dropping the code in the OpenSCAD editor, you can just keep hitting F5 until you get a result that catches your eye. This seems like an excellent way to generate printable terrain elements for gaming purposes, but that’s just one possibility.

Continue reading “Procedurally Generated Terrain In OpenSCAD”

Bad Apple But It’s 6,500 Regex Searches In Vim

In the world of showing off, there is alongside ‘Does it play Doom?’ that other classic of ‘Does it play Bad Apple?’. Whereas either would be quaint in the context of the Vim editor, this didn’t deter [Nolen Royalty] from making Vim play the Bad Apple video. As this is a purely black and white video, this means that it’s possible to convert each frame into a collection of pixels, with regular expression based search and custom highlighting allowing each frame to be rendered in the Vim window.

The fun part about this hack is that it doesn’t require any hacking or patching of Vim, but leans on its insane levels of built-in search features by line and column, adjusting the default highlight features and using a square font to get proper pixels rather than rectangles. The font is (unsurprisingly) called Square and targets roguelike games with a specific aesthetic.

First 6,500 frames are fed through ffmpeg to get PNGs, which are converted these into pixel arrays using scripts on the GitHub project. Then the regex search combined with Vim macros allowed the video to be played at real-time speed, albeit at 120 x 90 resolution to give the PC a fighting chance. The highlighting provides the contrast with the unlit pixels, creating a rather nice result as can be seen in the embedded video.

Continue reading “Bad Apple But It’s 6,500 Regex Searches In Vim”

Tactility; The ESP32 Gets Another OS

Doing the rounds this week is a new operating system for ESP32 microcontrollers, it’s called Tactility, and it comes from [Ken Van Hoeylandt]. It provides a basic operating system level with the ability to run apps from an SD card, and it has the choice of a headless version or an LVGL-based touch UI.

Supported devices so far are some Lillygo and M5Stack boards, with intriguingly, support in the works for the Cheap Yellow Display board that’s caught some attention recently. The term “ESP32” is now a wide one encompassing Tensilica and RISC-V cores and a range of capabilities, so time will tell how flexible it is for all branches of the family.

We find this OS to be interesting, both in its own right and because it joins at least two others trying to do the same thing. There’s [Sprite_TM]’s PocketSprite mini console, and the operating system used by the series of Netherlands hacker camp badges,  We’ll be trying to get a device running it, in order to give you a look at whether it’s suitable for your projects. If it runs well on the cheaper hardware, it could be a winner!