On ancient artifacts

I’ve been thinking about this subject for some time, but it was only after reading this article (and the ones linked there) that I decided it would make a good post. The article is about a new kind of data storage, created by femtosecond laser bursts into fused quartz. In other words, as the researchers helpfully put it, memory crystals. They say that these bits of glass can last (for all practical purposes) indefinitely.

A common trope in fiction, especially near-future sci-fi, is the mysterious artifact left behind by an ancient, yet unbelievably advanced, civilization. Whether it’s stargates in Egypt, monoliths on Europa, or the Prothean archives on Mars, the idea is always the same: some lost race left their knowledge, their records, or their technology, and we are the ones to rediscover them. I’m even guilty of it; my current writing project is a semi-fantasy novel revolving around the same concept.

It’s easy enough to say that an ancient advanced artifact exists in a story. Making it fit is altogether different, particularly if you’re in the business of harder science fiction. Most people will skim over the details, but there will always be the sticklers who point out that your clever idea is, in fact, physically impossible. But let’s see what we can do about that. Let’s see how much we can give the people a hundred, thousand, or even million years in the future.

Built to last

If your computer is anything like mine, it might last a decade. Two, if you’re lucky. Cell phone? They’re all but made to break every couple of years. Writable CDs and DVDs may be able to stand up to a generation or two of wear, and flash memory is too new to really know. In our modern world of convenience, disposability, and frugality, long-lasting goods aren’t popular. We buy the cheap consumer models, not the high-end or mil-spec stuff. When something can become obsolete the moment you open it, that’s not even all that unwise. Something that has to survive the rigors of the world, though, needs to be built to a higher standard.

For most of our modern technology, it’s just plain too early to tell how long it can really last. An LED might be rated for 11,000 hours, a hard drive for 100,000, but that’s all statistics. Anything can break tomorrow, or outlive its owner. Even in one of the most extreme environments we can reach, life expectancy is impossible to guess. Opportunity landed on Mars in 2004, and it was expected to last 90 days.

But there’s a difference between surviving a very long time and being designed to. To make something that will survive untold years, you have to know what you’re doing. Assuming money and energy are effectively unlimited—a fair assumption for a super-advanced civilization—some amazing things can be achieved, but they won’t be making iPhones.

Material things

Many things that we use as building materials are prone to decay. In a lot of cases, that’s a feature, not a bug, but making long-term time capsules isn’t one of those cases. Here, decay, decomposition, collapse, and chemical alteration are all very bad things. So most plastics are out, as are wood and other biological products—unless, of course, you’re using some sort of cryogenics. Crossing off all organics might be casting too wide a net, but not by much.

We can look to archaeology for a bit of guidance here. Stone stands the test of time in larger structures, especially in the proper climate. The same goes for (some) metal and glass, and we know that clay tablets can survive millennia. Given proper storage, many of these materials easily get you a thousand years or more of use. Conveniently, most of them are good for data, too, whether that’s in the form of cuneiform tablets or nanoscale fused quartz.

Any artifact made to stand the test of time is going to be made out of something that lasts. That goes for all of its parts, not just the core structure. The longer something needs to last, the simpler it must be, because every additional complexity is one more potential point of failure.

Power

Some artifacts might need to be powered, and that presents a seemingly insurmountable problem. Long-term storage of power is very, very hard right now. Batteries won’t cut it; most of them are lucky to last ten years. For centuries or longer, we have to have something better.

There aren’t a lot of options here. Supercapacitors aren’t that much better than batteries in this regard. Most of the other options for energy storage require complex machinery, and “complex” here should be read as “failure-prone”.

One possibility that seems promising is a radioisotope thermoelectric generator (RTG), like NASA uses in space probes. These use the heat of radioactive decay to create electricity and they work as long as there’s radioactivity in the material you’re using. They’re high-tech, but they don’t require too much in the way of peripheral complexity. They can work, but there’s a trade-off: the longer the RTG needs to run, the less power you’ll get out of it. Few isotopes fit into that sweet spot of half-life and decay energy to make them worthwhile.

Well, if we can’t store the energy we need, can we store a way to make it? As blueprints, it’s easy, but then you’re dependent on the level of technology of those who find the artifact. Almost anything else, however, runs into the complexity problem. There are some promising leads in solar panels that might work, but it’s too early to say how long they would last. Your best bet might actually be a hand crank!

Knowledge

One of the big reasons for an artifact to exist is to provide a cache of knowledge for future generations. If that’s all you need, then you don’t have to worry too much about technology. The fused-quartz glass isn’t that bad an option. If nothing else, it might inspire the discoverers to invent a way to read it. What knowledge to include then becomes the important question.

Scale is the key. What’s the difference between the “knowers” and the “finders”? If it’s too great, the artifact may need to include lots and lots of bootstrapping information. Imagine sending a sort of inverse time capsule to, say, a thousand years ago. (For the sake of argument, we’ll assume you also provide a way to read the data.) People in 1016 aren’t going to understand digital electronics, or the internal combustion engine, or even modern English. Not only do you need to put in the knowledge you want them to have, you also have to provide the knowledge to get them to where it would be usable. A few groups are working on ways to do this whole bootstrap process for potential communication with an alien race, and their work might come in handy here.

Deep time

The longer something must survive, the more likely it won’t. There are just too many variables, too many things we can’t control. This is even more true once you get seriously far into the future. That’s the “ancient aliens” option, and it’s one of the hardest to make work.

The Earth is like a living thing. It moves, it shifts, it convulses. The plates of the crust slide around, and the continents are not fixed in place. The climate changes over the millennia, from Ice Age to warm period and back. Seas rise and fall, rivers change course, and mountains erode. The chances of an artifact surviving on the surface of our world for a million years are quite remote.

On other bodies, it’s hit or miss, almost literally. Most asteroids and moons are geologically dead, and thus fairly safe over these unfathomable timescales, but there’s always the minute possibility of a direct impact. A few unearthly places (Mars and Titan come to mind) have enough in the way of weather to present problems like those on Earth, but the majority of solid rock in the solar system is usable in some fashion.

Deep space, you might think, would be the perfect place for an ancient artifact. If it’s big enough, you could even disguise it as an asteroid or moon. However, space is a hostile place. It’s full of radiation and micrometeorites, both of which could affect an artifact. Voyager 2 has its golden record, but how long will it survive? In theory, forever. In practice, it’ll get hit eventually. Maybe not for a million years, but you never know.

Summing up

Ancient artifacts, whether from aliens or a lost race of humans, work well as a plot device in many stories. Most of the time, you don’t have to worry about how they’re made or how they survived for so long. But when you do, it helps to think about what’s needed to make something like an artifact. In modern times, we’re starting to make some things like this. Voyager 2, the Svalbard Global Seed Vault, and other things can act, in a sense, as our legacy. Ten thousand years from now, no matter what happens, they’ll likely still be around. What else will be?

Let’s make a language – Part 13b: Numerals (Conlangs)

For the first time in this series, not only will we be able to treat Isian and Ardari in the same post, but we’ll actually look at them at the same time. We can do this thanks to the similarity in the way they treat numerals. Sure, there are differences, and we’ll see those as we go, but the highlights don’t change that much from the “simple” Isian to the “complicated” Ardari.

The numerals

First off, both conlangs use a decimal system, like most languages in common use today. Both are based around the number ten, but in slightly different ways. Ardari is a more “pure” decimal language, although it has a little bit of vigesimal contamination; Isian, on the other hand, likes to work with hundreds for larger numbers. Although that may sound odd, think about how we do it in English: a million is a thousand thousands, a billion a thousand millions, and so on.

Before we get to the meaty grammar bits, here’s a table of numeral words in both conlangs. It shows all numerals up to twenty, all the multiples of ten up to a hundred, and a few selections to illustrate the numbers in between.

Number Isian Ardari
1 yan jan
2 naw wegh
3 choy dwas
4 khas fèll
5 gen nibys
6 hod sald
7 sowad chiz
8 nicul ghòt
9 pir ang
10 pol kyän
11 poloyan vänja
12 polonaw braj
13 polochoy kyävidas
14 polokhas kyävèll
15 pologen kyuni
16 polohod kyävisald
17 polosowad kyävichiz
18 polonicul kyävijòt
19 polopir kyäveng
20 nopolic darand
21 nopoloyan darandvi jan
22 nopolonaw darandvi wegh
30 choypolic dwaskyän
33 choypolochoy dwaskyänvi dwas
40 khaspolic wedarand
50 gempolic byskyän
60 hobolic dwasrand
70 subolic chiskyän
80 nilpolic fèldarand
90 pirpolic änkyän
100 cambor grus

In both languages, the default form of a numeral is as an adjective. For Ardari, this requires adjective inflection for the first four, including changing for the gender of their head nouns. On the Isian side, every number but yan “one” will have a plural head noun, but there is otherwise nothing to worry about.

We can use numerals directly as nouns in Ardari, just like any adjective, but we can’t in Isian, since it doesn’t allow adjectives without head nouns. Instead, we can use the “dummy” noun at: naw at “two things”. (For “one”, we’d use the singular yan a.)

Creating higher numbers in Ardari is, surprisingly, fairly straightforward. As you can see in the table above, numbers like 21 are constructed using the linking conjunction -vi, which appears on everything but the last noun or adjective in the phrase. Thus, darandvi jan is literally “twenty and one”. This pattern extends throughout the system: 123 is grusvi darandvi dwas.

In Isian, things get a little hairier. Up to 109, you take the “tens” numeral, strip off the final -ic, add on a linking -o-, and add the “ones” numeral: nopolic “twenty” plus yan “one” equals nopoloyan “twenty-one”. Past that, you have to make a phrase like polopir cambor at wa nilpolochoy “1,983”, but this takes you all the way to 9,999.

For positively huge numbers, you need more numerals. Isian has two native higher powers: jagor “ten thousand” and ilicor “million”, which can be used just like cambor “hundred”. As an example, the large number 1,048,576 would be represented in Isian by the mouthful ilicor at wa khas jagor at wa nilpologen cambor at wa subolohod. Yes, our way looks more compact, but imagine writing it out.

Ardari instead has separate words for each power of ten up to a million: ulyad “thousand”, minyir “ten thousand”, ovòd “hundred thousand”, and akrèz “million”; these can be “stacked” into a -vi phrase with the others. Our same example in the paragraph above, 1,048,576, then becomes akrèzvi fèll minyirvi ghòt ulyadvi nibys grusvi chiskyänvi sald. (As a shorter alternative, one can simply recite the digits in order, putting yvi before the last: jan zu fèll ghòt nibys chiz yvi sald.)

That last example shows the Ardari word for zero, zu. Isian has one, too: anca. However, it has an added wrinkle in that it doesn’t work the same way as the other numerals. To say “zero” as a noun, instead of using anca at “zero things”, you say anocal, the Isian word for “nothing”.

Our number is up

That’s all there is to it for counting numerals in our conlangs. They’re fairly simple, mostly because I stuck to a decimal number system. If you want to use something more “exotic”, like base-12, well, have fun with that. I’ve tried, and it’s a lot harder than it looks. Still, the “dozenal” people don’t seem to mind. Also, there’s a lot of grammar stuff I could have added, and we haven’t covered ordinal numbers, but those can come later. We can count in our languages now, and that’s good enough for the time being.

Thoughts on Vulkan

As I write this (February 17), we’re two days removed from the initial release of the Vulkan API. A lot has been written across the Internet about what this means for games, gamers, and game developers, so I thought I’d add my two cents.

I’ve been watching the progress of Vulkan with interest as both user and programmer, and on a “minority” platform (Linux). For both reasons, Vulkan should be making me ecstatic, but it really isn’t. I’m not trying to be the wet blanket here, but everything I see about Vulkan is written in such a gushing tone that I feel the need to provide a counterweight.

What is it?

First off, the rundown. Vulkan is basically the “next generation” of OpenGL. OpenGL, of course, is the 3D technology that powers everything that isn’t Windows, as well as quite a few games on Windows. Vulkan is intended to be a lower-level—and thus faster—API that achieves its speed by being closer to the metal. It’s supposed to be a better fit for the actual hardware of a GPU, rather than the higher-level state machine of OpenGL. Oh, and it’s cross-platform, unlike DirectX.

As of 2/17, there’s only one game out there that can use Vulkan: The Talos Principle. Drivers are similarly scarce. AMD’s are alpha-quality on Windows and nonexistent on Linux, nVidia only has an old beta for Linux, but much better Windows support, and Intel is, well, Intel. Hurray for competition.

Why it’s good

The general rule in programming is that the higher in the “stack” you go, the slower you get. High-level languages like JavaScript, Python, and Ruby are all dreadfully slow when compared to the lower-level C and C++. And assembly is the fastest you can get, because it’s the closest thing to a native language. For GPUs, the same thing is true. OpenGL is fairly high up in the stack, and it shows.

Vulkan was made to fit in a lower level. It has better support for multithreading, multicore programming. Shaders are faster. Everything about it was made to speed things up while remaining stable and supported. In essence, the purpose is to put everyone on a level playing field everywhere except the GPU. To make the OS irrelevant to graphics.

That’s a good thing. I say that not only because I use Linux, not only because I’d like more games for it. I say that as someone who loves the idea of computers in general and as gaming machines. Anything that makes things better while keeping the PC open is a win for everybody. DirectX might be the best API ever invented (I’ve heard people say it is), but if you’re using something other than Windows or an Xbox, it might as well not exist. OpenGL works just about everywhere there’s graphics. If Vulkan can do the same, then there’s no question that it’s good.

Why it’s not

But it won’t. That’s the problem. Vulkan ultimately derives from AMD’s Mantle API, which was mostly made for the Xbox One and PS4, to give them a much-needed power boost. The PC wasn’t exactly an afterthought, but it doesn’t seem like it was ever going to be the main focus of Mantle. Now, that console-oriented nature probably got washed away in the transition to Vulkan, but it causes a ripple effect, meaning that…

Vulkan doesn’t work everywhere.

Yeah, I said it. Currently, it requires some serious hardware support, and it’s mostly limited to the latest couple of generations of GPU. Intel only makes integrated graphics, and some of those can use it, but you know how that goes. For the GTX line, you need at least a 6-series, and then only the best of them. AMD has the widest support, as you’d expect, but it’s full of holes. On Linux, the R9 290 won’t be able to use Vulkan, because it uses the wrong driver (radeonsi instead of amdgpu).

And that brings me to my problem. For AMD’s APU integrated graphics, you have to have at least the Kaveri chipset, because that’s when they started putting in the GCN stuff that Vulkan requires. Kaveri came out in early 2014, a mere two years ago. It was supposed to release in late 2013, but delays crept in. Since I built my current PC for Christmas 2013, I’m out of luck, unless I want to buy a new video card.

But there’s no good choice for that right now, not on Linux. Do I get something from nVidia, where I’m stuck with proprietary drivers, and I can’t even upgrade the kernel without worrying that they’ll crash? Or do I buy AMD, the same company that got me into this mess in the first place? Sure, they have better open-source drivers, but who’s to say that they’ll actually work? You can ask the 290 owners what they think about that one.

The churn

So, for now, I’m on the outside looking in when it comes to Vulkan. But I can see the benefit in that. I get to watch while all the early adopters work out the kinks.

Vulkan isn’t going to take over the world in a night, or a month, or even a year. There are just too many people out there with computers that can’t use it. It’ll take some time before that critical mass is reached, when there are enough Vulkan-capable PCs out there to make it worthwhile to dump OpenGL. (DirectX isn’t really a factor here. It’s tied to Windows, and to a specific Windows version. I don’t care if DX12 is the Second Coming, it’s not going to make me get Windows 10.)

Game engines can start supporting Vulkan right now. Quite a few of them are, like Valve’s Source Engine. As an alternate code path, as an optimization used if possible, it’s fine. As a replacement for the OpenGL rendering system of an engine? Not a chance. Not yet.

Give it some time. Give the Khronos Group a couple of versions to fix the inevitable bugs. Give the world a few years to cycle through their current—underpowered or unsupported—computers or GPUs. When we get to that point, you might be able to see Vulkan reach its full potential. 2020 is a nice year, I think. It’s four years into the future, so that’s a couple of generations of graphics cards and about one upgrade cycle for most people and time for a new set of consoles. If Vulkan hasn’t taken off by then, it probably never will. But it will, eventually.