Difference between revisions of "Data decompression chain"

From apm
Jump to: navigation, search
(Related)
(3D modeling: heavily extended on the ==3D modelling== section and a bit on the ==Targets== section)
Line 7: Line 7:
  
 
== 3D modeling ==
 
== 3D modeling ==
 +
 
[[File:Csg tree.png|200px|thumb|right|[[Constructive solid geometry]] graph (CSG graph). Today (2017) often still at the top of the chain.]]
 
[[File:Csg tree.png|200px|thumb|right|[[Constructive solid geometry]] graph (CSG graph). Today (2017) often still at the top of the chain.]]
{{todo|add details|add details to decompression chain points}}
 
  
 +
[[Programmatic high level 3D modelling]] representations with code can <br>
 +
considered to be a highly compressed data representation of the target product. <br>
 +
 +
The principle rule of programming which is: '''"don't repeat yourself"''' does apply.
 +
* Multiply occurring objects (including e.g. rigid body [[crystolecule]] parts) are specified only once plus the locations and orientations (poses) of their occurrences.
 +
* Curves are specified in a not yet discretized (e.g. not yet triangulated) way. See: [[Non-destructive modelling]]
 +
* Complex (and perhaps even dynamic) assemblies are also encoded such that they complexly unfold on code execution. <br> Laying out [[gemstone based metamaterial]]s in complex dynamically interdigitating/interlinking/interweaving ways.
 +
 +
Note: '''"Programmatic"''' does not necessarily mean purely textual and in: "good old classical text editors". <br>
 +
[[Structural editor]]s might and (as to the believe of the author) eventually will take over <br>
 +
allowing for an optimal mixing of textual and graphical programmatic representation of target products in the "[[integrated deveuser interface]]s".
 +
 +
== The decompression chain in [[gem-gum factories]] (and 3D printers) ==
 +
 +
The list goes:
 +
* from top high level small data footprint
 +
* to bottom low level large data footprint
 +
-----
 
* high language 1: functional, logical, connection to computer algebra system
 
* high language 1: functional, logical, connection to computer algebra system
 
* high language 2: imperative, functional
 
* high language 2: imperative, functional
Line 18: Line 36:
 
* tool-paths
 
* tool-paths
 
* Primitive signals: step-signals, rail-switch-states, clutch-states, ...
 
* Primitive signals: step-signals, rail-switch-states, clutch-states, ...
 +
 +
{{todo|add details to decompression chain points}}
  
 
=== Targets ===
 
=== Targets ===
  
* physical object
+
Beside the actual physical product another desired product of the code is just a digital preview. <br>
* virtual simulation
+
So there are several desired outputs for one and the same code. <br>
 
+
 
<small>Maybe useful for compiling the same code to different targets (as present in this context): [[Compiling to categories (Conal Elliott)]]</small>
 
<small>Maybe useful for compiling the same code to different targets (as present in this context): [[Compiling to categories (Conal Elliott)]]</small>
 +
 +
'''Possible desired outputs include but are not limited to:'''
 +
* actual physical target product object
 +
* virtual simulation of the potential product (2D or some 3D format)
 +
* approximation of output in form of utility fog?
  
 
=== 3D modeling & functional programming ===
 
=== 3D modeling & functional programming ===
  
 
Modeling of static 3D models is purely declarative.
 
Modeling of static 3D models is purely declarative.
* example: OpenSCAD
+
* example: [[OpenSCAD]]
 
...
 
...
  

Revision as of 20:45, 19 November 2021

This article is a stub. It needs to be expanded.

This article defines a novel term (that is hopefully sensibly chosen). The term is introduced to make a concept more concrete and understand its interrelationship with other topics related to atomically precise manufacturing. For details go to the page: Neologism.

The "data decompression chain" is the sequence of expansion steps from

  • very compact highest level abstract blueprints of technical systems to
  • discrete and simple lowest level instances that are much larger in size.

3D modeling

Constructive solid geometry graph (CSG graph). Today (2017) often still at the top of the chain.

Programmatic high level 3D modelling representations with code can
considered to be a highly compressed data representation of the target product.

The principle rule of programming which is: "don't repeat yourself" does apply.

  • Multiply occurring objects (including e.g. rigid body crystolecule parts) are specified only once plus the locations and orientations (poses) of their occurrences.
  • Curves are specified in a not yet discretized (e.g. not yet triangulated) way. See: Non-destructive modelling
  • Complex (and perhaps even dynamic) assemblies are also encoded such that they complexly unfold on code execution.
    Laying out gemstone based metamaterials in complex dynamically interdigitating/interlinking/interweaving ways.

Note: "Programmatic" does not necessarily mean purely textual and in: "good old classical text editors".
Structural editors might and (as to the believe of the author) eventually will take over
allowing for an optimal mixing of textual and graphical programmatic representation of target products in the "integrated deveuser interfaces".

The decompression chain in gem-gum factories (and 3D printers)

The list goes:

  • from top high level small data footprint
  • to bottom low level large data footprint

  • high language 1: functional, logical, connection to computer algebra system
  • high language 2: imperative, functional
  • Volume based modeling with "level set method" or even "signed distance fields"
    (organized in CSG graphs which reduce to the three operations: sign-flip, sum and maximum)
  • Surface based modeling with parametric surfaces (organized in CSG graphs)
  • quadric nets C1 (rarely employed today 2017)
  • triangle nets C0
  • tool-paths
  • Primitive signals: step-signals, rail-switch-states, clutch-states, ...

(TODO: add details to decompression chain points)

Targets

Beside the actual physical product another desired product of the code is just a digital preview.
So there are several desired outputs for one and the same code.
Maybe useful for compiling the same code to different targets (as present in this context): Compiling to categories (Conal Elliott)

Possible desired outputs include but are not limited to:

  • actual physical target product object
  • virtual simulation of the potential product (2D or some 3D format)
  • approximation of output in form of utility fog?

3D modeling & functional programming

Modeling of static 3D models is purely declarative.

...

Similar situations in today's computer architectures

  • high level language ->
  • compiler infrastructure (e.g. llvm) ->
  • assembler language ->
  • actual actions of the target data processing machine

Bootstrapping of the decompression chain

One of the concerns regarding the feasibility of advanced productive nanosystems is the worry that that all the necessary data cannot be fed to

The former are mostly hard coded and don't need much data by the way.

For example this size comparison in E. Drexlers TEDx talk (2015) 13:35 can (if taken to literally)
lead to the misjudgment that there is an fundamentally insurmountable data bottleneck.
Of course trying to feed yotabits per second over those few pins would be ridiculous and impossible, but that is not what is planned.
(wiki-TODO: move this topic to Data IO bottleneck)

We already know how to avoid such a bottleneck.
Albeit we program computers with our fingers delivering just a few bits per second
computers now perform petabit per second internally.

The goal is reachable by gradually building up a hierarchy of decompression steps.
The most low level most high volume data is generated internally and locally very near to where it's finally "consumed".

Related

External Links

Wikipedia