Digital Assembly Theory — An Alternative and Teachable Approach to Creating Non-Arbitrary Digital Constructs 🙃

Astral Arkitekt
Astral Architecture
11 min readJul 11, 2024

“Newton’s work is particularly important in the history of physics not just because he identified new laws of nature, but because his work defined the very nature of the pursuit of laws of nature for the centuries that followed. If you think this cannot be done again, buckle up. We are young and the road to understanding reality is long …” — Sara Imari Walker

Introduction

Digital Assembly Theory (DAT) is a new perspective for creating non-arbitrary Bitcoin Ordinals, and was conceived through conversations with various Bitmap Community members that inspired the research and rabbit holes culminating in this new framework. Digital Assembly Theory borrows from the ideas put forth by Sara Walker (@Sara_Imari) and Lee Cronin (@leecronin) — that’s where the Assembly Theory part comes in.

Background

Digital Matter Theory (DMT) introduced the concept of creating tokens by registering Elements to determine the token supply. The Elements are based on arbitrary pattern recognition in bitcoin block data which is immutable and non-arbitrary. DMT further describes a methodology for creating what is referred to as a UNAT — a Unique Non-Arbitrary Token, where the traits that determine the creation of a thing — be it a profile picture, or 3d experience, or game, or application are expressed by Blockchain data.

As interesting as Digital Matter Theory is, and the state that it is in currently, I have to admit I find it ironically arbitrary for a framework corner-stoning on the Non-Arbitrary Nature of blockchain data. Element registration, which determines the supply of a given Non-Arbitrary Token (NAT) — is an arbitrary act. You are deciding at the moment of identification of a given blockchain pattern that this Element exists. You, the arbiter. Arbiter of creation.

What’s more — the act of assigning traits as prescribed (or not — depending on how you look at it) by the Digital Matter Theory whitepaper is an arbitrary process utilizing non-arbitrary data. That is not the same as using non-arbitrary data to select from an arbitrary data-set. Essentially, inside of the methodology for creating a “Unique Non-Arbitrary Token” you will find nested instances of arbitration occurring during the entire process.

I would argue then, that perhaps a different approach could be taken to adhere more closely to non-arbitrary trait-selection and expression, and further, I submit there are very valid creative reasons to do so..

To be clear — this is an alternative approach to what the Block Runners have introduced as Digital Matter Theory, and that’s okay. You use what you prefer. I’m just here to provide an alternative approach to Non-Arbitrary Trait Selection and Expression that’s a little more prescriptive on the one hand and a little more à la carte on the other, but strives to be as Non-Arbitrary as is possible.

Let’s dive in with an example!

🟧 The “Life” of a Bitmap (As we know it, today)

Imagine a Bitmap as a living entity that starts its life as a Bitcoin block. This is its initial state — potential, not yet inscribed. The moment a Bitmap is inscribed, it collapses into being, much like the act of an observer in quantum mechanics. This inscription is akin to the “birth” of the Bitmap.

  1. Initial Confirmation: The block is confirmed, creating the potential for the birth of a Bitmap.
  2. Text Inscription: A simple ordinal inscription will then mark the Bitmap’s “birth.”
  3. Parceling: This is the first act allowing a Bitmap to evolve by creating a parent-child inscription. This inscription can host any content within the constraints of the Block Chain’s storage limits.
  4. Ordinal Development: For example, building a virtual world within the Bitmap on the aforementioned parcel.
  5. Temporal Evolution: Time unfolds within the world, and alongside that time we have an event timeline that can add layers of complexity as time advances. In other words, Time can be seen as the source of all events.
  6. Alternate Possibilities: Exploring different scenarios and outcomes within the Bitmap’s universe. For example, one could create a game that utilizes DAT to allow the player’s choices to create different fully-realizable non-arbitrary outcomes. (Please follow this little white rabbit 🐇over to book.digitaldimensionstheory.tech and bookmark that site. “Digital Dimensions Theory (DDT) — Lesson 6” will demonstrate examples of how to implement scenarios such as this)

This progression mirrors how Assembly Theory explains the emergence and evolution of complexity in “life” showcasing how simple constructs can lead to intricate systems. (If this thought piques your interest, please check out “Is there Life on Bitmap?” when you finish here!)

Core Concepts of Digital Assembly Theory (DAT)

Digital Assembly Theory builds on the foundational principles of Bitmap and Ordinal Theories, introducing the concept of time as a crucial element. It integrates time, evolution, dimensionality and an “Entropy Index” into a coherent framework capable of meaningful digital construction. Key concepts include:

  • Temporal Dimension: Utilizing block confirmations to represent units of time, enabling evolution.
  • Complexity and Evolution: Emphasizing the accumulation of complexity over time through the use of an algorithm for deterministic, stable, non-arbitrary event timelines and non-arbitrary trait selectors. I call this “Hash Cycling.”
  • Multi-Dimensionality: Structuring the development and interactivity of Ordinals across 10 dimensions (+ time 🙃) to enable you to create digital constructs of varying levels of complexity matching Bitcoin’s lifespan.
  • Entropy Index: A worksheet to measure the complexity of a digital construct, calculated by the number of unique, non-arbitrary elements and interactions that have accumulated over time. It’s also pretty damn handy for people like me that need to maintain a record of what their traits for a project even are! 😹

What Kind of Projects is this For?

Different projects have different requirements. DAT allows for experimentation and implementation at various levels of complexity:

  • Simple Projects: For those just getting started, DAT can provide straightforward methods to construct simple projects. For example, using the blockchain to select a contest winner from a list of entrants, or to set the initial state of a game or application non-arbitrarily based on a given block height.
  • Moderately Complex Projects: Projects like Profile Picture Collections can take advantage of DAT-2, where you create 2D art with the potential to evolve over time. This might involve constructing a face for the profile picture collection using non-arbitrary methods against various datasets, such as face shape, eye color, and hair color and some of those things can change over time.⌛
  • Highly Complex Projects: For intricate projects like a 3D, Gamified, Explorable Galaxy project, multiple dimensions might be involved. Because of DAT’s multi-dimensional framework, the more complexity a project requires, the more dimensions and solutions are needed to address these challenges. My companion creativity framework, Digital Dimensions Theory endeavors to provide thought experiments, actions, and examples to help you rise to meet those challenges. (Be sure and Subscribe to “Astral Architecture” so you don’t miss the follow-up articles on Digital Assembly Theory or the Digital Dimensions Theory Creativity Framework.)

Practical Applications

Because of DAT’s versatility and pick-and-choose-what-you-use-ness, there exists a very wide range of practical applications for builders and creators. Some that I have planned — include, but are not limited to:

  • Digital Pets: Evolving traits and behaviors based on block confirmations and user interactions.
  • Dynamic Art: Art pieces that change and evolve over time based on blockchain data.
  • Resource Collection Games: Games where resource availability and user efficiency change dynamically.
  • Metaverses: Virtual worlds that evolve continuously, offering varied and personalized experiences.
  • Hybrid Applications : Check out DDT — Lesson 2 for an example!

How to get started with Digital Assembly Theory — The Core Data-Points and Tooling

These are your training wheels, not your final ride. You can choose to use these data points and tools as the core of your ordinal development adventures, or not, but the learnings can still be applied.

These are the 3 primary Bitcoin block header data-points I’d like you to consider when applying Digital Assembly Theory, and why:

  1. The Confirmations Property: Each block header’s confirmations represents the arrow of time. With each newly confirmed block this number increases, representing the incrementing of time. I found it important to provide an abstract method of measuring units of time in this framework to address scenarios where time is compressed, like in video games where time passes more quickly to keep the game play engaging.
  2. The Block Hash: De-padded to remove leading zeroes, the block hash acts as the event timeline that can evolve with each confirmation using the Hash Cycling algorithm. This may be used to non-arbitrarily select events that may occur during a given experience when visiting an ordinal, adding temporal evolution to your project.
  3. The Merkle Root: The Merkle root is my preferred non-arbitrary trait selector for a dataset. I find it useful to think of the Merkle Root as each block’s DNA. By splitting the Merkle root into 32-byte pairs (eg: a0), you can express 32 different traits before needing to use Hash Cycling or consider the use of other data points.

Other fields in a block header are valid choices for expressing traits. So please, experiment with other fields, but always feel like you can fall back on these core tenets to fulfill most if not all of your creative needs.

Finally, there’s the tooling: that Hash Cycling algorithm I keep throwing at everything.

Hash Cycling is a non-arbitrary and deterministic method rooted in block data for extending a given hash to accommodate the number of data points required for non-arbitrary trait selection and expression. I will reach for this tool again and again as the starting point of my experiments.

Crucially, Hash Cycling allows for the extension of the Merkle root (or any other hexadecimal string rooted in the Block data), so if your project requires more than 32 traits, you can simply hashCycle() the Merkle root to extend it by another 32 bytes, creating 32 more data points for trait selection. Need more? Hash Cycle your Synthesized Merkle Root to extend it again. And again with THAT Synthesized Merkle Root. As many times as you need, this tool will provide. ♾️?

To use Hash Cycling in your project you simply need to fetch the inscription, and include it in your project like so:

<script src="/content/fc70057d771be38967e680be03290abe0ae4555a8bd6313ca8543f63600ec890i0"></script>
<script>
// let's pretend that this blockHeader mock-object is the result of
// fetching a Block's data from the /r/blockinfo/662023 endpoint.
// (That's my first bitmap! 🙃)
const blockHeader = {
// ... non-arbitrary data-fields
block_hash: "000000000000000000078c77bfd6f53f2f6bb711d40bed23bcee4ca6e6abfd7a",
merkle_root: "bd7274b038eb853d839f030fd3b6db55a7e2bb1397633b85bafe19e4f42f0f4b",
confirmations: 189613,
// ... more fields
};

const merkle_root = blockHeader.merkle_root;

// let's say we have 78 traits for our project.
// To have enough non-arbitrary data-points,
// we need at least 78 byte-pairs

// this requires 2 Hash Cycles of the merkle root
const first_extension = hashCycle(merkle_root);

const second_extension = hashCycle(first_extension, merkle_root);

const trait_selectors = `${merkle_root}${first_extension}${second_extension}`;

/* this results in this output for selectorHashes:
bd7274b038eb853d839f030fd3b6db55a7e2bb1397633b85bafe19e4f42f0f4b7ae4e86070d60a7a063e061ea66cb6aa4ec476262ec6760a74fc32c8e85e1e9637565c10a8c18fb789dd092d792291fff5a63139c529b18f2efa4bacdc8d2de1
*/

// now we explode the trait_selectors to reveal our 78 byte-pairs

const trait_selectors = selectorHashes.match(/.{1,2}/g);

// this results in an array of 96 byte-pairs:
/* [ "bd", "72", "74", "b0", "38", "eb", "85", "3d", "83", "9f", "03", "0f",
"d3", "b6", "db", "55", "a7", "e2", "bb", "13", "97", "63", "3b", "85",
"ba", "fe", "19", "e4", "f4", "2f", "0f", "4b", "7a", "e4", "e8", "60",
"70", "d6", "0a", "7a", "06", "3e", "06", "1e", "a6", "6c", "b6", "aa",
"4e", "c4", "76", "26", "2e", "c6", "76", "0a", "74", "fc", "32", "c8",
"e8", "5e", "1e", "96", "37", "56", "5c", "10", "a8", "c1", "8f", "b7",
"89", "dd", "09", "2d", "79", "22", "91", "ff", "f5", "a6", "31", "39",
"c5", "29", "b1", "8f", "2e", "fa", "4b", "ac", "dc", "8d", "2d", "e1" ]; */
/* this is the raw, deterministic, non-arbitrarily rooted data you would use
to select your traits.
I have javascript convenience functions to add to the Hash Cycling library
in the coming weeks to make this more accessible to new developers.
*/
</script>

or during your development phase:

<script src="https://ordinals.com/content/fc70057d771be38967e680be03290abe0ae4555a8bd6313ca8543f63600ec890i0">
// your development code goes here
</script>

Digital Dimensions Theory will make extensive use of this algorithm in it’s examples, so be sure to check out and consider bookmarking: book.digitaldimensionstheory.tech

Yielding Creativity from Non-Arbitrary Data.

In the realm of Digital Assembly Theory (DAT), the concept of “non-arbitrary” data is fundamental. But what does this mean, and why do I believe it will supercharge your creative endeavors?

What is Non-Arbitrary Data?

Non-arbitrary data refers to information that is not random but instead determined by specific, inherent factors or rules. In the context of DAT, non-arbitrary data is the immutable properties of the Bitcoin blockchain, such as the Merkle root, block hash, and other block header fields. These data points are stable, verifiable, and universally agreed upon by the network, making them an ideal foundation for creating digital constructs.

Why Non-Arbitrary Data Matters

For me, the importance of non-arbitrary data in the creative process lies in the constraints it provides. These constraints serve as a framework within which creativity can flourish. Here’s why:

  1. It Encourages Different Thinking: By relying on non-arbitrary data, creators are pushed to think outside the box. Instead of starting from a blank slate, you start with predefined elements that you must creatively apply to your desired traits to create the thing you have in your head — and hopefully your heart-place, too! This can lead to unique and innovative solutions that might not have been discovered otherwise. (It’s how I discovered Hash Cycling!)
  2. It Facilitates Immediate Action: Bitcoin’s non-arbitrary block data offers a clear starting point and DAT offers a clear set of options to you based on your needs. This reduces the paralysis that often accompanies creative projects, where the endless possibilities can be overwhelming. With a structured framework, you can dive into the creative process more quickly and efficiently.
  3. It Sustains Momentum: The constraints provided by non-arbitrary data help maintain momentum in your creative journey. Each step in the process is guided by the data, reducing the number of decisions you need to make and allowing you to focus on executing your vision. This can be particularly beneficial in long-term projects, where maintaining motivation can be challenging.

Conclusion

Digital Assembly Theory represents a yet another novel approach to creating complex, evolving digital constructs by leveraging the temporal and structural data inherent in the Bitcoin blockchain. By drawing from the core principles of Assembly Theory and M-Theory, DAT provides a robust framework for meaningful digital creation.

For those eager to delve deeper into the practical applications of DAT, follow the @DDTEco X account, bookmark book.digitaldimensionstheory.tech, or join the DDT Discord community. While Digital Dimensions Theory (DDT) is currently focused on Digital Matter Theory (DMT), it will soon be refactored to include and emphasize the application of Digital Assembly Theory moving forward.

Explore, experiment, and innovate with Digital Assembly Theory, and join a small but growing community exploring how to push the limits of digital creation on the blockchain.

Acknowledgements

Shout out to @_lefrog for being the fantastic intellectual sparring partner and brainstorming machine that he is. I couldn’t have done this without his help.

Shout out to the Elevated Dabber, for inspiring me with his amazing You Live in a Bitmap series of articles and spaces, and our mind-expanding conversations. I started this journey with Digital Dimensions Theory because of him and his engaging thought experiments.

Shout out to @AI_Consultants_ for introducing me to Assembly Theory and the wonderful encouragement and wild conversations that led me to the courage to say yes, I will offer my two sats on Non-Arbitrary Trait Selection and Expression.

Shout out to @Bitmap_News and all the connections I’ve made as a result of this wonderful space the Orange Anchor Man has created for builders like myself to have a place to call “home” in the digital ether.

Finally, to @Blockamoto and Bitmappers across the world. IYKYK 🟧💪

Always. Be. Building. 👷‍♂️🏗️🟧🌌

Subscribe to Astral Architecture so you don’t miss the follow-up articles on Digital Assembly Theory or the Digital Dimensions Theory Creativity Framework.

--

--

Astral Arkitekt
Astral Architecture

Experimentoor building Cosmic Web 3 things on Bitcoin using Javascript and Three.js