Self-descriptive Physical Object

Gold Member
Summary:
Is it possible to encode a physical object's description in itself?
I think this is Information Theory but I'm not sure what forum that might belong in.

(Note: this is a thought experiment not a practical suggestion for copying things.)

The other day I was examining a 3D printed widget I designed, and I wondered if I could ever recreate it should I lose the file (which happens to me frustratingly often) that describes it.

Now, I know what you're thinking "The object already contains a description of itself - in its own measurements! Just measure every relevant coordinate."

Well, that would be an analogue description, and it's pretty prone to error. The description of the object would suffer from measurement error, and that would be compounded each time. (especially a problem if the object had narrow tolerances for moving parts.)

It occurred to me that I could encode the specifications for recreating it in the surface of the object itself. That way, as long as I had an example I could always just follow the instructions to recreate an exact duplicate.

So, the simplest object to describe is probably a sphere, but I think I'll start with a cube, say, 1 inch on-a-side.

I would 3D model the cube, and then inscribe in the model's bottom instructions that say cube 1" sides or something.
But suddenly it is not a simple cube anymore; it has 13 dents in it, each of which now needs to be specified and included in the 3D model, so that, when it print out, it includes those instruction imprinted in its bottom.
So the instructions for recreating the cube-with-1"-inscribed-on-the-bottom have gotten much more complex. I've got to describe every curve and plane of the letters that make up the instructions themselves.
But as soon as I do that, the instructions required to make it get much longer, and therefore require more planes and angle ot describe how to imprint them, etc.

Several questions immediately arise:
1. The instructions for creating cube will rise in complexity at some geometric rate, but must it always be increasing faster and faster? Or is it theoretically possible for its to increase to slow down? Some solutions for this might be:
1. some sort of recursive instructions, where it takes fewer characters to describe the same thing subsequently
2. some form of lossless (or even lossy) compression in representation
3. Perhaps a legend, where certain repetitive sub-instructions are reduced to a single symbol
2. Is there a way of representing the information in a more concise, compact form than spelling it out?
1. The instructions can offload some descriptors to the operator, such as letting the operator assume "inch" units, and letting the operator assume the measurement means "on-a-side". That would mean the primary instructions are reduced to only a "1" though they still need to describe how to imprint that 1 onto the cube.

Finally, does this qualify for being formed into a conjecture? Which way? Do I conjecture that it is theoretically possible, or do I conjecture that it is not possible, no matter how how many instructions I am allowed, and no matter how compressed I can make them?

There is probably a much simpler version of this in the form of a 2D picture, and whether a picture can describe itself.

In fact, somewhere out there is a 1 dimensional version that is simply a sentence that describes itself in letters, thus: "This sentence contains sixty-six As, twenty-three Bs, eighteen Cs... " etc.

hutchphd

Office_Shredder
Staff Emeritus
Gold Member
Dna is an example of an object that contains all the information to recreate itself, since it literally does recreate itself. There are sometimes errors in the process though so maybe this doesn't satisfy your requirements.

If you allow yourself standards then the problem is trivially solved. If the only objects you are interested in encoding are cubes of integer length, you can just write the length on the side. Other users don't need to carefully measure how you wrote the length down, because that would be specified by some standard for how the number is encoded. I still couldn't exactly duplicate your work but as long as we both adhere to the standard I will succeed up to manufacturing error.

If you want literally arbitrary objects, this feels impossible, because anything you could pick as an encoding scheme, I could just include in my object but not use it as an encoding scheme, thus foiling your attempt. Like if I take your exact object and add anything to anywhere, you will not be able to recreate it correctly unless your encoding scheme literally requires measuring everything in the object to arbitrary precision, at which point, it sounds like you have already trivialized the question.

phinds
Gold Member
This is similar to the idea of programs that print themselves.

https://en.wikipedia.org/wiki/Quine_(computing)
Not really. The object you end up with (a piece of paper with printing on it) is nothing like what you need to reproduce it which is a computer with a compiler for that language.

hutchphd
Gold Member
If you allow yourself standards then the problem is trivially solved. If the only objects you are interested in encoding are cubes of integer length, you can just write the length on the side. Other users don't need to carefully measure how you wrote the length down, because that would be specified by some standard for how the number is encoded.
Writing on an object doesn't meet the criteria. The writing is not part of the object and does not reproduce itself when recreating the object.

hutchphd
Homework Helper
Dna is an example of an object that contains all the information to recreate itself, since it literally does recreate itself.
Is this really true? It can recreate itself if placed in a particular set of external conditions. The DNA itself can replicate but only within a cell filled with mitochondria and nucleic acids. In the larger sphere DNA recreates via procreation but that requires parental units and a host of particular activities.
But a strand of DNA by itself will not suffice. A book is complete only within a bookstore.

Gold Member
Not really. The object you end up with (a piece of paper with printing on it) is nothing like what you need to reproduce it which is a computer with a compiler for that language.
Well, frankly, the same thing can be said for my 3D object. All I get is instructions. It's up to me and my 3D software and printer to correctly execute the instructions before I have my copy. So jbriggs44's analogy is valid.

Gold Member
Is this really true? It can recreate itself if placed in a particular set of external conditions. The DNA itself can replicate but only within a cell filled with mitochondria and nucleic acids.

Yeah, but I said nothing about it being able to recreate itself; only that it contains the instructions I need to recreate it. My 3D cube example still requires a sophisticated support environment ( including software and hardware) for me to be able to recreate it.

Gold Member
Hm. And I guess that kind of renders it a moo point*.

*because who cares what a cow thinks, right?

If I grant that an arbitrary amount of support is allowed (whether it be 3D software and 3D printer, or cell biology or inkjet printer and paper), then the problem becomes trivial. I can always simply specify that one facet of the support is - oh say, a library of predefined, described objects - such as a one-inch cube.

hutchphd
jbriggs444
Homework Helper
Hm. And I guess that kind of renders it a moo point*.

*because who cares what a cow thinks, right?

If I grant that an arbitrary amount of support is allowed (whether it be 3D software and 3D printer, or cell biology or inkjet printer and paper), then the problem becomes trivial. I can always simply specify that one facet of the support is - oh say, a library of predefined, described objects - such as a one-inch cube.

If no support model is specified then the problem is incomplete.
If a support model is specified so that you are not allowed to pick and choose then the problem may be interesting.

Office_Shredder
Staff Emeritus
Gold Member
Writing on an object doesn't meet the criteria. The writing is not part of the object and does not reproduce itself when recreating the object.

No, you recreate the writing. The point is we agree already of time on all the details of how we will write things, so the only thing you need to determine is what I wrote, not how I wrote it (similar to how your are trusting me to have *actually* made a cube of the specified dimension, the system already requires trust between us)

Gold Member
If no support model is specified then the problem is incomplete.
If a support model is specified so that you are not allowed to pick and choose then the problem may be interesting.
OK, so I might have opened it up too wide.

The instructions cannot assume what the support system is. It is assembly-agnostic.

The description embedded in the object only describes the measurements of the object itself, not how to reproduce it. I could use those instructions to print it out on a 3D printer, but I could use the same instructions to whittle it out of wood. That means I can't count on a software library of predesigned "cube" objects I can refer to.

The cube simply says
< Cube, one inch on a side >
< At one corner, 1/16th inch in from the corner, gouge a semi-circle, 1/16th inch radius and 1/16th inch deep facing right.** >
etc.

**(This describes how to cut the first letter, which is a capital "C".)

That's what I was originally envisioning.

Gold Member
No, you recreate the writing.
That requires that the writing describes what writing you write on it when you've got the blank cube.

Remember, you cannot measure the object to get your specs for recreating it. That also means you cannot simply copy the writing you see. It must be included in the instructions.

Office_Shredder
Staff Emeritus
Gold Member
That requires that the writing describes what writing you write on it when you've got the blank cube.

Remember, you cannot measure the object to get your specs for recreating it. That also means you cannot simply copy the writing you see. It must be included in the instructions.

The instruction is simple. An example of a complete instruction could be "1". And we have pre arranged that that instruction means the following thing;
1.) Make a 1 inch by 1 inch by 1 inch cube
2.) Etch the number 1 on it, in times new Roman font, 1/4 inch tall, 1/4 inch margin between the bottom of the number and the bottom edge of the cube, 1/4 inch margin between the leftmost margin and the left edge of the number. The etch should be 1/32nd of an inch deep. Add additional instructions as needed to make sure two machinists would agree exactly on what to do to etch this.

And similar for any other numbers that could be instructed. Given a cube that fits these parameters, I could read what it says and recreate the cube. If someone else then got my cube, they could recreate it as well. Even if there are minute measurement errors, the cube measurements will not drift over time, unless someone fails to read the number correctly, which is a pretty big error.

The question you really are asking is "what is an instruction". If you try to instruct me to make a 1 inch cube, that only makes sense if we both agree on what 1, inch and cube all mean. If I speak Japanese and only use the metric system I will probably not be able to follow your instructions. So we need to agree on a mapping from what is written (or otherwise instructed) to what we are actually supposed to do. If the mapping we pick is clever, and we only care about making very specific things, then your problem becomes very straightforward.

As another example. Suppose we only care about making two objects - an equilateral triangle with side length 1, or an equilateral Pe

pentagon with side length 1. Then we don't even need any encoding. As soon as we agree those are the things we are making, just seeing how many vertices the object contains is sufficient to recreate it perfectly.

Gold Member
That is tantamount to simply "remembering" how to construct the object from scratch, just that - in this specific case - you only need to remember that the 1 means "a cube, one inch on a side."

How long can I remember for?
Can anyone else but me reconstruct the cube with just a "1" scratched on it? It's not exactly objective; it is cheating, by commandeering my memory to store the rest of the instructions. And that fails the requirement.

My next object is a(n American) football. Do I just "remember" the equations for making a football shape? Does anyone else know what they are?

jbriggs444
Homework Helper
Then we don't even need any encoding.
I come at this from a mathematical perspective. Without an encoding any information embedded in an object is meaningless.

Yes, if you choose the encoding (or the implementation language or whatever you want to call it) reasonably, it will turn out not to matter much -- any Turing-complete model of computation is roughly equivalent to any other.

mfb
Mentor
Remember, you cannot measure the object to get your specs for recreating it.
Just reading the inscribed text is a very rough measurement method. You judge the shapes of parts of the object. Every type of information gathered from the object can be seen as measurement.

"Cube, with the text on this side inscribed on all 6 sides, here are some details where exactly the text is".

If you absolutely want to avoid self-referential text:
"Cube, with the text on the side below inscribed on all 6 sides, here are some details where exactly the text is".

Gold Member
Just reading the inscribed text is a very rough measurement method.
But it's digital.

A teacher once expressed the difference between digital and analogue this way:

Every month, your salary is sent down a wire to your bank account in one of two methods.
• Analogue: the dollar value is sent as a voltage - $513 is represented by 513 volts. • Digital: the dollar value is sent as a signals -$513 is sent as 100 volt blips of 5, 1 and 3.
Signal strengths tend to be quite reliable but not perfect.
Which method is better?

A 1% variance in voltage results in a \$5.13 error for analogue.
But, digitally, a 99 volt blip is still a blip. No error.

The amount of allowable error for the analogue signal is zero.

Same applies to the writing on the cube.
Assume a 99% accuracy in your measurement technique of any distance on the cube.

Taking analogue measurements means your recreation will be off by 1% - which is an utter failure.
Reading imprinted text that's off by 1% will still result in 100% interpretation. (An A that's only 99% A-shaped is still an A.)

Raise the accuracy to 99.9%.
Your analogue is still off by .1%
But digitally, the writing is perfectly legible.

mfb
Mentor
I posted a method where you get a full description from reading the text. The text can be as detailed as needed - including a full description of the font used and so on.

Gold Member
I posted a method where you get a full description from reading the text. The text can be as detailed as needed - including a full description of the font used and so on.
Yeah, I guess.

I'd have to do some real bunny-bifurcation if I were to try to differentiate that from what I was originally envisioning - which is a cube with the text as a physical component. I did not anticipate the short-cut of simply writing the instructions on the cube after it has been printed/whittled.

mfb
Mentor
The text can be a physical three-dimensional component. You can engrave the text, or make it stick out using the 3D printer, or whatever. Describing the geometry of the text only takes a finite amount of text. Write in Braille if you want to be really minimalistic.

"Cube with side length of [length]. Each side contains the Braille text of this side. Dots are half spheres with a radius of [length] attached to the cube, with a dot spacing of [length], a letter-to-letter spacing of [length] and a line to line spacing of [length]. The text begins [length] horizontally and [length] vertically from the corner of the cube."

The relative orientation of the text on the 6 six sides and which word to put on which line is digital information.

Office_Shredder
Staff Emeritus
Gold Member
I don't see how this is that different from the cube situation I described. You're restricting yourself to only creating objects with braille writing, and assuming the other person knows that you're doing that. Quantitatively you can create more stuff this way, but qualitatively it feels like the same type of system as what I described.

What is you want to make a cube that's not covered in dots? This system is totally screwed.

mfb
Mentor
There is no fundamental difference between Braille and the Latin alphabet or any other. Braille is just easier to describe, but you can fully describe the geometry of any writing system you want.

Gold Member
There is no fundamental difference between Braille and the Latin alphabet or any other. Braille is just easier to describe, but you can fully describe the geometry of any writing system you want.
Yes. For me the question is: does a sufficiently concise alphabet turn the nature of the recursive self-description from an increasingly rising geometric curve into a decreasingly rising geometric curve?

(Not sure of the technical description of these curves)

mfb
Mentor
Your alphabet is finite so it needs a limited description which does not grow with the length of the description.