fogbound.net




Sun, 7 Jan 2024

Parametric Architecture

— SjG @ 4:13 pm

In ye olde days, I designed stuff in POV-Ray to render whatever fantastical scenes I was imagining. I’d spend hours figuring out textures and constructive solid geometry to create images. It was a slow process. Files were extremely slow to render. On my trusty Intel 80386-based PC running DOS, a scene of any complexity would take all night to render at 640×480 pixels.

Now, 30-some-odd years later, I still play with a constructive solid geometry modeler — in this case, OpenSCAD. The idea is that I could output the models to a format like STL, and then 3D print them into physical being. I haven’t actually done very much printing of models, but it’s an interesting possibility nonetheless.

By Pieter Brueghel the Elder – Levels adjusted from File:Pieter_Bruegel_the_Elder_-The_Tower_of_Babel(Vienna)_-_Google_Art_Project.jpg, originally from Google Art Project., Public Domain, https://commons.wikimedia.org/w/index.php?curid=22179117

Below are some images from a work in progress. I was inspired by seeing the Breugels painting above in a YouTube video. The tower is not only a great metaphor, but an interesting image and architecture.

My architectural thoughts go more Gothic (more flying buttresses), and parametric. By parametric, I mean that I figure the design can be based on a set of variables, for example, the ratio of height to width of a wall segment. For each value of the variables, the code can generate the appropriate geometry.

My ability to create this way is limited by two things: my trigonometry is not particularly strong, and my ability to keep a stable 3D point of reference in my head is even worse. So I start with sketches and pages of cosines and arctangents, and then end up doing a lot by trial-and-error. Because thinking in this mathematical space is hard, I end up getting frustrated and putting the project aside for days or months before picking it up again. Not to mention, even with today’s super-fast computers, as the complexity increases, the time to render an image increases!

So, my tower of Babel is not complete. There’s been some progress. I played with it a little today. Maybe one day I’ll finish it. Perhaps I’ll even print a model.


Thu, 28 Dec 2023

Welcome to the Fediverse

— SjG @ 5:03 pm

I’ve hooked up this blog to the fediverse. The improved visibility will doubtless increase readership from none to the lofty realms of zero.

Posts will federate as posts/toots/notes from @admin. Presumably, comments/responses will propagate back somehow too. I could read the manual, but I’m just going to sit back and see what happens.


Sat, 9 Dec 2023

A Dead-Simple Slideshow

— SjG @ 12:30 pm

I have tens of thousands of photos I’ve taken over the years.

I think some of these photos are pretty good, but most are languishing unseen on random hard drives.

To share them, I’ve been a member of Flickr, I’ve posted on the late lamented Twitter, and I post some onto Mastodon. I’ve also created numerous gallery applications/server scripts/web sites (e.g., Statgal), but they’ve generally been clumsy or take too much work to maintain. So I’ve been working on a dumb PHP/JavaScript slideshow thing that will scan directories, cache the details, etc.

Here’s introducing PhotoSpinner. It’s a quick’n’dirty script to provide photos. It’s very simple and allows me to publish categories of pictures without a lot of effort. Source code’s at Codeberg.


Tue, 14 Nov 2023

My Geometry BS, revisited

— SjG @ 7:14 pm

So, back in January, I posted about being back on my BS with geometry programs. Not too long after that, I think, I got distracted and changed focus and didn’t work on the code at all.

Well, in keeping with the idea that it’s better to do something half-assed than not do it at all, I’ve posted the code, such as it is. It’s a kaleidoscope-like thing written in Javascript, and outputs in SVG for all your re-use needs.

The programs flaws are many. It uses only line segments, not splines, so curves are not smooth. It doesn’t actually merge the line segments into continuous shapes, so the resultant SVG files are huge. And it’s written in Javascript, so in addition to all the mistakes I’ve made, it’s got bugs that may not even be mine.

Still, I think it’s fun to play with. Maybe one day, I’ll write code to merge the line segments, and possibly weave overlapping lines into knot patterns (which was the original intent). But for now, here it is: Tiler.


Tue, 10 Oct 2023

Which files are dupes

— SjG @ 4:56 pm

Over the past six months, I’d copied a set of files down from a network drive, then new ones were added to the network drive, and I’d copied some of the new ones down but maybe not all? How could I possibly clean up this mess?

Easily, it turns out!

$ diff -srq /mnt/Volumes/2023/Bank_Statements/ /local/receipts/2023/

This will list all the files, and mark if they’re only in the /mnt/Volumes/2023/Bank_Statements/ directory, only in the /local/receipts/2023/ directory, if the file exists in both places but is different, or if the file exists in both places and is identical. The -s flag means “report identical files,” the -r flag is to go recursively, and the -q flag just announces the files are the same/different rather than showing their differences.

This’ll work as long as the file names have not been changed. If file names have changed, it’ll require a more robust utility.