c0de517e's journal
log_003

logo: back home toot
- Recollecting the history of offline rendering.
- My tools & routine for vintage laptops.
- A backup system you should not use...
- Trust is lost in buckets and gained in drops.
- How comes that Trump might (still) win?
- Big rooms don't ship.
- Xenix.
- Stray humans.
[Previous log file]

- Recollecting the history of offline rendering. (permalink)

I went a bit on a bend a few days ago trying to dig information about the evolution of offline rendering software. I remember most of it - at least - the stuff you could know outside the secrets of proprietary movie studio software (e.g. https://www.awn.com/mag/issue2.2/articles/ohmerblue2.2.html) - but for some reason I couldn't really recall the point when path tracing made it to the masses - who started that first.

This is a bit of pattern for me. I remember clearly my c64 days as a kid, I remember playing with a 286 that my uncle had, I bought then an amiga 600 - in general up to windows 9x/nt4 (for a while I was running both, using nt for graphics apps and 9x for games) my memory is solid. Past that, it's a blur - I changed so many graphics cards, motherboards, CPUs etc - I don't know what was running when and where.

Anyhow - this is what I "reconstructed":

- The early days.

Raytracing was king, especially in the hobbyist space. I guess this is because RT is relatively simple to implement (albeit a bit annoying when you don't have hardware floats) but yields incredible results - slowly.

Povray was the posterchild of amateur rendering - but there were many others (I was fond of vivid for a while). It was not uncommon for people to compare it favorably against production renderers - in the misguided way that makes people compare feature lists instead of understanding what are the needs of artists. Povray is a toy renderer, but an incredibly fun one.

Some commercial 3d software used "scanline" rendering (3d studio), hybrid (lightwave) or other rasterization methods (reyes in prman, and later on prman alternatives such as renderdotc, 3delight, aqsis etc). But even for commercial 3d packages raytracing was common - e.g. Imagine 3d, Real 3D, Cinema 4D etc.

Larry Gritz' BMRT(1994 - first public release https://web.archive.org/web/20000915084458/http://www.bmrt.org/bmrtstory.html) implemented the renderman spec in raytracing, was adopted by Pixar as a ray server for some shots of their movies (A bug's life, Toy story 2). BMRT became Exluna's Entropy, and was infamously killed by Pixar's dubius patent claims.

- The "radiosity" days.

The infamous time when "radiosity" was used to mean "indirect diffuse GI" or even just "GI" in general - even if in practice almost nobody was using the radiosity algorithm itself - perhaps only some architectural rendering software.

This is where things get interesting. Because path tracing has been known since... forever. Kajiya's paper is from 86 - radiosity technically came earlier, in 84, but by now they are both old.

The most reasonable assumption is that path tracing was "skipped" simply because it was too computationally expensive - but this did not happen for raytracing, which was certainly crazy expensive when it started to flourish on the Amiga.

Regardless, I really struggled to find early examples of path-tracing software - everyone jumped from recursive and distributed RT directly to biased methods - most commonly photon mapping with QMC sampling and irradiance caching for the final gathering step - a setup that perhaps most famously was employed by MentalRay (Softimage, Maya, 3dsMax...).

MentalRay history starts in 1989 - around the same time BMRT was starting to be conceived, but the first big adopter was Softimage 3D - 1992 with v2.52 - but I don't know when it adopted GI. Keller's QMC papers were from 94 - and IIRC these were directly implemented in MentalRay - so it wouldn't be surprising if around that time at least MentalRay had GI.

It's actually not trivial to find the exact techniques - this is a time when rendering software exploded, and everybody competed on their GI solution but most just called it "GI" or "radiosity". E.g. Brazil R/s (2007? - photonmapping/qmc), finalrender (2004?), vray (also pm/qmc apparently), Pantaleoni's Lightflow (~2000), fprime etc etc...
This is actually a great list I remember browsing back in the days - you can use the internet archive to see its evolution in time https://www.pointzero.nl/renderers/
Even Povray did the PM/IC combo, first with the popular MegaPov fork/patch, then in the official distribution (and to this day, that's pov's GI). I found a pure montecarlo fork of MegaPov from 2008, but I don't think it was ever popular.
Notable in 2002 is Parthenon https://cs.uwaterloo.ca/~thachisu/tdf2017.pdf - which does PM on the GPU!

It's not that unbiased methods were not actively being researched - Veach's seminal paper on MLT was from '97 (e.g.
https://www.reedbeta.com/blog/reading-veach-thesis/) and I myself was very invested in all of this state of the art (my master's thesis was on unbiased GI) - but IIRC the consensus at the time was that unbiased methods were important to push forward as you could always add bias "later" to make them more practical for actual rendering. And it didn't help I guess that academics were not publishing source code. Still it is suprising that I could not find a pure path tracer in the 90ies!

- Path tracing.

So, this is what I found re: earliest public path tracers:

- Arnold - was at leasat "known" in ~1999 https://www.3dluvr.com/marcosss/raditests.html https://news.povray.org/povray.general/thread/%3CiH08OXoMzWCbJzKLMsEe%3Dvx2H3Vr%404ax.com%3E/ but it feels much more contemporary because only in 2004 it got adopted (and then forked) by Sony and even later it started to become a "public" thing that 3d software licensed. I think other software also started being experimented on in the late 90ies, e.g. Indigo. Marcos also made a povray branch called povafx, with volumetric effects https://sushideathrobots.github.io/
- Sunflow (java, opensource) ~2005
- PBRT (opensource, book...) ~2004
- Indigo (free) ~2000
- Maxwell Render ~2004 using MLT!
- Fryrender ~2006 path tracing on the GPU!
- WinOSI (opensource) ~2001 - its own kinda weird light transport, sort of a photon map with infinitesimal photons
- Phos ~2004? Implemented all kinds of unbiased light transport, it later became https://kerkythea.net/ and now "Thea" https://web.archive.org/web/20040608032756/http://users.ntua.gr/jpanta/Phos/

I'm not sure who "wins" in this list - I can see that path tracing was being actively experimented with (e.g. https://www.flipcode.com/archives/12-13-2004_nc.shtml), even by some hobbyists or academic researchers publishing code, in the early 2000. At this point it seemed already "demystified" - the theory was known, people were even shooting rays randomly in the scene a decade prior, in photonmapping renderers - I guess though now the hardware was powerful enough to enable pure path tracers to come to light.

So I have to conclude that whilst raytracing came "early" (before it was realistically practical), path-tracing came "late" (could have been implemented "in public" earlier but was not) - even later than realtime raytracing in fact - Heaven Seven by Exceed was in 2000, and that was far from being the first rtr demo!

If I find out more, I'll perhaps modify this journal entry!
Fri, 29 Nov 2024 12:10:53 -0800


- My tools & routine for vintage laptops. (permalink)

Posted this to Reddit a while ago https://www.reddit.com/r/vintagecomputing/comments/1g9ro8w/my_tools_routine_for_vintage_laptops_suggestions/ - figured it would be good to record it in my journal here as well.

---
I have a few vintage laptops, my "collection" mostly focuses around the pentium pc era, dos, mostly and windows 9x. I'm a software engineer, have no real experience with hardware, but can operate a soldering iron to some extent, and a tester. This is the list of tools I've found useful thus far, I'd welcome suggestions for improving my routine!

Hardware:

+ Maintenance
- Deoxit / Mc Chemicals cleaners (cheaper, easier to find where I'm from) for contacts. I use these relatively liberally, especially on older machines (i have a 386 gridcase and a few c64), for sockets, potentiometers and female plugs.
- 303 Aerospace protectant - I use this VERY liberally on all plastics, it makes them look much nicer imho - "Magic Eraser" to clean (if needed, it's a mild abrasive) - thus far I have not used other abrasives or corrosives (e.g. brasso etc) - 99.9% alcohol for most electronic cleaning - I have some lithium grease for rails and other moving parts - Thermal paste, I tend to replace all old paste - Small heatsinks if/when needed (mostly on older HW) - I use two-part epoxy to mend plastics, on vintage laptops of the era I'm interested in, they are very often brittle and prone to breaking - I never tried the powder+superglue method for repair, maybe I should...

+ Tools
- I have an electric air duster I much prefer to compressed air cans...
- I have a cheap soldering iron and a cheap/generic tester I use mostly for continuity if I suspect issues or I need to solder stuff - I have a cheap variable power supply / multi plug from Amazon that I use when (often) laptops come without a power adapter. So far never had an issue with it.
- I happen to have an infrared (thermal) camera, but never used it thus far for this hobby...
- A SATA/IDE (2.5" IDE, 3.5" IDE, 2.5"/3.5" SATA) to USB converter to access old drives - An USB floppy drive to transfer files if no USB ports on the computer/laptop - found these to be ok to transfer files, but terrible when it comes to "low level" imaging - For some things where I need to dump exact floppy images, I put the .img/.zip on the floppy, copy it to the laptop hd, then from dos on the laptop use freedos rawrite tool to overwrite the floppy!
+ Mods
- CF-IDE on most laptops - Toyed with the idea of using a wifi-enabled compactflash - but have been put down by the low review scores of these devices - seems easier to use usb drives for transfer.
- Been thinking to grab something like a NanoKVM to be able to more easily remote control - at least some of the more recent devices (i.e. supporting USB keyboard/mouse) - Some laptops that lack USB can use cardbus/pcmcia usb2.0 cards (easy to order on amazon!) on win 9x - I always replace the realtime/cmos clock battery if present - I always gut the laptop battery (remove the cells, keep the electronics in case I'd ever want to rebuild - never tried thus far) - reassemble the plastic casing so I don't leave a hole in the laptop :)

Software:

- Ontrack Disk Manager to create partitions.
- Using the aforementioned ide2usb and virtualbox with a dos VM and ontrack disk manager to create partitions on the CF/IDE - this is the most reliable way I've found to create cf cards that will boot on the real HW! As most of my laptops are pentium-era, I use dos7/fat32 and create (multiple, if needed) 4gb partitions.
- Norton Ghost for backups.
- The dosbench collection for testing.
- memtest86+ 4.10 and 4.60

Questions:

- In general, I'm quite interested in what are the best ways to mend and generally reinforce these plastics, are they are the number one issue in vintage laptops in my experience! - Do people use anything to "coat" the inside of these plastics to future-proof them? I'd imagine for example that liberally applying epoxy could help (in places where the extra thickness is not an issue)? - I'm even considering for some to just do a full rehousing, transforming them into "cyberdecks", but have not yet finalized any plans. Right now, the most likely path is to use a small pelican case as the shell of the housing!
- The only other big "concern" I currently ignore are capacitors. To be honest, I'm not even sure I am able to recognize a "bulging" one and thus far, in none of my computers I had electrical problems, leaks and so on. I would be willing to replace "dangerous" ones but I don't know how to ID them, and I know that capacitors can't really be tested in-circuit - so far, I'm going with "if it ain't broken..." - not sure if I could improve on this. From what I gather, the stereotypical "bulging" capacitor thing is rare - best simple way to check for leaks is by smell (fishy).
- Lastly, I'm now considering to mod at least one of my laptop LCDs to use led backlights, there are conversion kits on amazon (from ccfl to led) - but I'd love to know if people tried/had success on this for vintage hardware...
Wed, 27 Nov 2024 12:05:52 -0800


- A backup system you should not use... (permalink)

...but it's kinda cute, as it was done almost entirely via chatGPT.
You can find the script here: c0de517e.com/MISC/backup.py
I have this system at home where I backup, very sporadically, data from my and my wife's computers. It's made of a "dumb" USB multi-bay hard-drive enclosure, fitted with various random drives I "collected" over the years.

Data there is always stored twice - i.e. on two separate drives, identical copies. It's dumb, simple, I love it. I turn the thing on a few times a year, copy the data, turn it off/unplug.

The only thing that always kinda annoyed me is that I can't easily detect bit-rot, and it would be hard to correct once detected. I had some scripts made in the past/used software to take hashes of all files and compare them, I thought of storing said hashes on the drives as well, but it was never great, and re-hashing the drives every time takes days.

Ideally, I wanted to use some backup software to create the second copy - instead of having both copies as plain files. Ideally, I wanted the software to be simple, portable, able to do compressed, incremental backups, and able to detect and even fix errors if needed.

I never found something like that, backup systems tend to be complex, designed to run continuously, to backup whole partitions, upload to the cloud etc etc. The closest thus far I've found is dar64/dargui or portableapps toucan, but they are both so niche, I don't know if I would trust them more than building my own...

So I did!
So far, I'm testing it only on smaller tasks, i.e. keeping a backup for some USB keys I use for various not-critical things. We'll see.
Thu, 7 Nov 2024 16:26:34 -0800


- Trust is lost in buckets and gained in drops. (permalink)

Turns out I was optimistic (even if - cautiously so). Which is... rare, at least, in the past I've been more often right than wrong, in reading the moment.

For leftist movements all across the world, it should be a reckoning.

The left is no more seen as the party of the working people. It is seen as the elite, the establishment, the conservative choice, not a force of change.
It is seen as a party more focused on SJW than listening to the people, even, often, listening to the minories, instead of assuming they are on board, and that they are uniformly as socially progressive as they imagine.
I would not be surprised to see that Trump made inroads with all demographics.

I'll probably block politics for a while because I fear the noise of people that now will say that it's all misogyny, xenophobia, racism, fascism. And don't get me wrong, there are definitely these forces at play, but these people are not swing voters, and they are not the majority.

Fear, pain, lack of trust - that, I think, is what populists capture, and how from there worse sentiments are bred. Sentiments that would not take hold in people's mind, if they had hope, if they trusted governments to deliver the change they want to see.

The left has been gaslighting people, insisting that their problems are not real, that the economy is great, immigration is an absolute value and never an issue, even, in the states, that a demented president is one of the best things ever to happen to the country.

I still think Harris did outstandingly well, given what she had to work with. I really feel for her loss. I think any other year she would have won, and I think Trump is not at all that strong. He wins when the opposition is weak.

First, with Clinton who was the embodiment of all the establishment fears, and a deeply unliked politician seen as being anointed from above.
Now, with Kamala I think it is different, she is an amazing politician, but she could not shake the perception of being part of Biden's gaslighting campaign.
I don't think her race had any effect, one way or the other. Her gender did lose some, win some, but all in all I doubt it was determinant.

A new left has to emerge. Unfortunately, I suspect it will take some time, it takes time to change and evolve.
As the right now tied themselves to populism, and it is both a "tool" and a shackle, so is the left living in its own bubble. The most likely path is that next time they will edge a win, and think there's nothing structural to change, and so on.
But I might be wrong... It has been known to happen :)
Wed, 6 Nov 2024 10:28:19 -0800


- How comes that Trump might (still) win? (permalink)

"Per questo i Signori del Mondo sono iniziati, ma non indulgono alla mistica. Il mistico e per essi uno schiavo, il luogo di una manifestazione del numinoso, attraverso il quale si spiano i sintomi di un segreto.
L'iniziato incoraggia il mistico, se ne serve come lei si serve di un telefono, per stabilire contatti a distanza, come il chimico si serve della cartina di tornasole, per sapere che in qualche luogo agisce una sostanza.
Il mistico e utile, perche e teatrale, si esibisce. Gli iniziati invece si riconoscono solo tra di loro. L'iniziato controlla le forze che il mistico patisce." - Umberto Eco, Il Pendolo di Foucault.

I don't care here to get into politics. FWIW, even before the debate debacle, I thought Biden's chances were relatively slim, and I have been surprised by how strong Harris turned out to be - but the consensus is that every outcome is possible at this point. "Too close to call".

What I'd like to talk about is the tendency of most to not understand how this is possible. How, all over the world, populist movements have risen to power. Did people suddenly become racist, fascist, xenophobic, ignorant?
Following social media - view-driven information, it might seem that's the case, but it is a simplifying narrative. Also, one that flies in the face of the established trends of humanity to evolve its social structures towards inclusiveness.

The danger of this approach goes beyond ignorance. It fosters a polarizing narrative that does nothing but entrench the division - ironically, it is itself populism - just of a different color.

I believe that there is real pain, unaddressed, in large parts of the population. We ignored it using macroeconomic numbers, not understanding that all our perceptions are relative to a moving baseline. Everyone is getting richer, but at the same time, inequality is growing. And it's simplistic (populist again) to just identify that in the Bezos of the world. The meat of the problem is not in the ultra-wealthy, it lies in the simpler, everyday fact that we have a generation that looks back at their parents and considers them to be more fortunate than they are.

Whilst this inequality was rising, with mathematical precision, with the rise of the global economy, the parties of the working people started to speak the language of the elites. The focus shifted from factories to social issues that raced ahead of the actual progress of society.

Am I saying that we shouldn't fight for ideals? That pragmatism is the only measure of politics? That intellectuals are sinners and should be forced to "touch grass" - at the least? Obviously not. But if you deprive large parts of the population of representation, what do you expect to happen? Progress?
We reap what we sow. And yes, on this soil, all kinds of perverted ideologies are flourishing. But they are not the root cause of the issue.
Once pain is felt for long enough, once mistrust in the institutions takes hold, you open people's minds to alternatives, for them to find home in more welcoming communities.
Ari Aster's Midsommar is a masterfully crafted movie around this premise.

White, uneducated, cisgender, male. How come that is the profile most likely to vote for Trump? Is that a genetic issue, perhaps, an inherent evil? Or did we educate them to fit a given role in society, and then not just changed the script in terms of the concrete opportunities, but the narrative around it? Should we weep for the struggles of privilege? Stop championing equality, human rights? Obviously not. But progress is helped by prosperity, can't leave people behind.
And ironically, progressives are losing support now even among minorities.

I imagine that most of the people who are going to vote for Trump are not extremists, they are willing to close one eye or two over the misgivings of their candidate because their brain works like any brain, with strong biases that leave very little space for ideas that cause discomfort. We are not rational in the best of times, and that small degree of mental opening that in the best of cases people have, shuts down under the effects of pain and fear.

Some go beyond that, and will actively engage with the lies, with whatever piece of information that confirms their pre-existing beliefs. With the community that such beliefs create. And they will be useful, they will volunteer, become activists, give to the cause.

I don't think Trump, or any other populist, is a genius in the intellectual sense. But they do know what makes some people tick. I imagine he knows he lost fair and square, for example, but in part, I don't think he can admit that to himself, because he is a weak, small person, and in part he knows that repeating the lie creates a community, a useful one. It gains more than it costs.

Lastly, in a rare turn of events, we can trace directly the causes of some pain to direct, recent actions of a government. Usually, it takes so long to steer the ship of a nation, and politics in a democracy is such an exercise in compromise, that is rare to make a dent. Not in the recent history of the US.

The post-pandemic rise of inflation, and consequent measures on interest rates, can be in a not unreasonable way, attributed at least in part to overly aggressive welfare measures. The weak stance on the Israeli's criminal retaliation over a terrorist attack makes nobody happy. And the rate of immigration has been increasing exponentially, beyond the country's ability to absorb it. Barbara Jordan today reads like a Republican. Not to mention that Joe is unfit to be president. Gaslighting an entire electorate is hard, especially if you're not experienced.

All that said, I don't want to paint an overly bleak picture. If I had to bet, right now I would bet on Harris. But I dislike the lack of empathy and understanding of the world that I see.

Whoever wins, there will be half of a country weeping. To them I say - it is going to be ok, you are going to survive. Without stopping for a second to denounce what we don't like in the world, we could though take a moment to wonder at a democracy that saw Obama after Bush, Biden after Trump, and now is deciding between two candidates that are both equally likely to win, and both represent... and extraordinary diversity on the political spectrum.
Tue, 5 Nov 2024 18:10:50 -0800


- Big rooms don't ship. (permalink)

Committees are the anathema of innovation. Overly diffused responsibility is an adequate measure against existential risks - and that's why we generally prefer democracies over authoritarianism - but it also ensures mediocrity at best - and that's why inevitably governments, all over the world, are considered ineffective, the more so the more "developed" a democracy is.

I doubt that there is a particular "shape" - organizational structure, that can avoid this. Innovation requires ownership, ownership requires trust. And trust usually is not given, and probably should not - a priori.

The way this works, if one has the right people, is that someone somewhere decides to act: focus, execute, deliver - good work is viral, it gets adopted by the undeniable merits of the solution.
Once someone demonstrates these skills, they should get "certified" - entrusted with ownership, with the ability to start larger projects. This might result in promotions and the like, and then the cycle repeats if the individual wants to grab more space, solve bigger problems.

The only thing a company should do is to protect the space and the culture that fosters such endeavours. Clearly explain what the company is looking for (so that people can self-evaluate the ROI of potential ideas), and clearly, and publicly reward people who successfully delivered.
Sat, 10 Aug 2024 15:26:54 -0700


- Xenix. (permalink)

In my retro-computing and emulation adventures I've stumbled upon some tales of Microsoft's Xenix. The name was not unfamiliar to me, but I never knew what the idea was - or rather, being an Unix clone, I assumed - and this is undoubtedly coloured by a more contemporary view (of Linux) - it was something that Microsoft wanted to have for mainframes and the like.

Apparently, not (only). The idea was for DOS to be the single-user, monotasking OS, and Xenix was intended to the foundation of what to come next: multitasking. This also had to wait on hardware, not just power, but crucially, memory protection. We take all these things for granted, but at the time, they were grand ideas, the difference between minicomputers, mainframes and micro/personal computers.
Various companies were on board - and we know where the history went.

This is a reminder not only that in IT (fast moving, fast spreading innovation) long-term plans and design-by-committee always fails (good for maintenance, safety, risk-aversion - not for innovation), but also that "good" ideas quickly get out of hand of their designers.

I'd be curious to know how much - at least for the xenix's leaders, the success of dos and later of single-tasking graphical UIs (windows) caught them off guard. Personal computing only needed a platform, not a "good" one in terms of technical sophistication, just anything to bring the chaos under control, to enable a hardware/software ecosystem to flourish. Microsoft did it first with Basic, then with DOS/Windows and arguably it is doing now the same thing (albeit, not as pioneering, but still, successfully) with Azure.

Plans don't survive the first contact... but "happy accidents" can also catch you off guard. And this is the "move fast break things" ethos and the various other myriad ways of saying the same thing.
Sat, 27 Jul 2024 14:04:16 -0700


- Stray humans. (permalink)

Stray cats, sometimes dogs, you might encounter walking down a street where I come from.

Where I moved, my second identity now, we have stray humans. Everywhere.

It is wearing me down to a point where I want to move to an even more affluent part of town, just to get what's likely to be a temporary respite from a problem we are unable to solve.
It is selfish and I realize the epitome of privilege, but it is also the truth, my empathy has been worn down.

I also think we are the cause. Prosperity brings inequality, in a measure that can't be compensated by progressive taxation - at least, not without effectively depressing the economy, thus, reducing the prosperity itself.

In other words, I don't think there is a way to create something like the Silicon Valley, that level of wealth, value-add, "productivity", without ending up with the downsides, it is, mathematical.

But the downsides might be just big enough that we should just accept this fact and live with it. What good is it to be wealthy in a place where you have to barricade yourself to not interact with the dystopia you caused?
One little thing that I don't see advocated much, when it comes to the social responsibility of companies, is to just avoid accelerating the issue.
Progressives in tech talk about the big stuff, saving the world, net-zero emissions, D&I and so on, but still within the constructs of big tech itself, with the illusion that if you're just smart enough, you can have your pie and eat it too. Despite all the evidence to the contrary.

Sustainability starts, imho, from not forcing all talent to move in the SV (or similar hotspots). You can create offices big enough to have all the "serendipity" that face to face human connection elicits, without adding to the problem.
And many people prefer not to displace themselves, so you might have a leg up in hiring talent. And, it is cheaper talent. Win-win-win?
Fri, 19 Jul 2024 11:43:45 -0700


[Previous log file] [Home]