“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
Creativity is wild. It can be elusive. We have terms for when it behaves in such a frustrating manner. “Writer’s Block”, “Creative Block”, etc. I find that fun because a huge creative unlock for me involved leaning into the Blocks. But not as described in those harrying terms.
I mean Bitcoin blocks. Yeah. Crypto. It’s not just about digital currency. Not anymore.
Hi, I’m the Astral Arkitekt. I’m building an immersive, lore-rich sci-fi fantasy multiverse that uses Bitcoin Ordinals to allow you to own games, art, and experiences that take place in this sprawling, evolving, expansive reality I call the Astral Assemblage.
In this article I’d like to introduce you to the tools and techniques I’m using to make it happen.
Bitcoin Ordinals, Bitmap, and Digital Matter Theory have provided me with the necessary foundations, but I’m having to build the tools, myself. And since they’re going to be on-chain for a long long time, I thought it worth teaching others how to make use of them too.
I do hope you get value out of this.
An Origin Story
I’d only begun learning crypto a few months before Casey Rodarmor introduced us all to the wonders of Ordinal Theory for Bitcoin, which included this magical thing called recursion. So I thought – this. I’ll lean into this and build my first Ordinals Collection.
Well – that idea grew legs fast. Next thing I knew – I had a roadmap. But not for a simple collection. I had a roadmap for creating a Multiverse. That’s what came out of my brain. For 20 years – not exaggerating – I have had this idea in my head of writing an epic sci-fi fantasy set against the backdrop of Gnostic Cosmology.
While brainstorming for my first Ordinals Collection, this idea jumped back to the forefront of my mind, and in about 6 weeks – I’d created a prototype of not an ordinals collection but a Cosmic Card Battler strategy game with loads of lore that you could play in your browser.
I began teasing it on social media, developing it into a physical card game, writing fiction to let people start to explore the multiverse I was building… But I still hadn’t come up with THE idea for an ordinals collection.
Then Bitmap happened. I watched, but didn’t ape in. And, wow, that picked up steam fast. A metaverse on Bitcoin? 🤔I understood the concept but hadn’t read the whitepaper. I barely knew how to use bitcoin at the time, and had yet to buy my first ordinal.
“662023.bitmap” ended up being that first ordinal. I didn’t mint this bitmap. No, I couldn’t just pick a random one, I had to find one that had some kind of personal, sentimental significance to me. June 6th, 2023 was the date I founded my Game Development company, Astral Assemblage Games. So that’s what I wanted and I used my internet detective skills to find the owner of 662023.bitmap, message him, and get it for floor price.
It was about this time that we got Digital Matter Theory from the guys at The Block Runner Podcast. I finally connected some dots when Digital Matter Theory was released. I’d always admired procedural artists, and I believe that if I really sort through my experiences – it was DMT’s metaphor for pattern recognition in immutable data that made something click in my brain.
Where as Bitmap Theory’s white paper describes a process for using Bitcoin Block Data to delineate “sandboxes” for each of us holders to build on using non-arbitrary data to give our Digital Space form, Digital Matter Theory outlined a method that allows for the creation of all kinds of things using what is now called “Non-Arbitrary Tokens” that, if you choose can be turned into “Unique Non-Arbitrary Tokens” using Ordinal Re-inscription on the deployment.
Both Theories utilize the same underlying process of pattern-recognition in immutable non-arbitrary data to do a thing. What I’ve written here is no different in that particular respect.
So Why create Digital Assembly Theory at all?
Thanks to the combination of Bitmap Theory and Digital Matter Theory, I have now a methodology for “fleshing out” my game’s Multiverse with locations, items, art and games using blockchain data to realize an expansive sprawling epic Sci-Fi Fantasy world that can grow and evolve over time.
Bitmap helped me zoom out and look at what it would take to realize a universe full of unique locations. DMT helped me zoom in and look at my project, and all the various things it would require to create a functioning Web3 enabled gamified multiverse on Bitcoin. There are countless opportunities to experiment here, and that’s where I find my joy.
DAT is a superset of Digital Matter Theory – it does not intend to disregard what was put forth already, it extends and on certain points, provides alternatives to the original implementation, and that’s what innovation and experimentation is, right?
Bitmap was the first theory to outline using blockchain data to give something form or shape. Digital Matter Theory gives that methodology a name and a model for non-arbitrary token supply. Digital Assembly Theory extends this by introducing the other forces at play (Time + the Ten Dimensions) that you can utilize to realize your project’s goals, along with lessons (See: Digital Dimensions Theory), Tooling, and more.
To sum it up, DAT empowers you with tools to simplify and speed-up development via on-chain Javascript tooling, apps to flesh out your ideas, the dimensions to inspire new ideas, and has itself inspired a new native-ordinal approach to minting called NOVA. 🤐
Digital Assembly Theory expands upon what the Block Runners have introduced as Digital Matter Theory, and does not seek to replace it. It is 100% compatible WITH DMT in both theory and application.
If you find something useful here, use it.
I’m just here to share my alternative approach to building Ordinals on Bitcoin using Blockchain Data that’s a little more prescriptive on the one hand and a little more à la carte on the other. And it’s all meant to help you grab your creativity and run with it, wherever that might lead you.
I knew I’d have to write something like this to support my vision for my Galaxies project, and I realized that what I was doing was creating tooling that can help Bitmap and DMT both.
I’m still writing code and building out the tools. This is a “Build in Public” sort of project. Things are very fluid, but the theory is sound.
So now – let’s get into it!
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.
- Initial Confirmation: The block is confirmed, creating the potential for the birth of a Bitmap.
- Text Inscription: A simple ordinal inscription will then mark the Bitmap’s “birth.”
- 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.
- Ordinal Development: For example, building a virtual world within the Bitmap on the aforementioned parcel.
- 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.
- 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 Digital Matter, Bitmap and Ordinal Theories, introducing the concept of time as a crucial element. It provides metaphor and tooling to enable you to look at your project from different angles to see what COULD BE and how to get there with code and creativity underpinned by that non-arbitrary data we all know and love. Bitcoin.
- 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.
- Digital Entropy Index: Your digital lab for exploring trait-mapping 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 using Blockchain data.
- 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 data as the selector for various traits 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.
It’s my belief as a teacher that to educate well something complex, it’s important to align on the source material you learn from. That’s why we focus on the Merkle Root in this framework.
There are 28 fields available for fun and experimentation in your ordinals on-chain. And each of them has their own way of behaving. Different frequencies of change, etc. Use what feels right, but if you’re learning, I think you might find it helpful – in theory – to focus on a single property to get the hang of things. If you’re down with that, follow along and we’ll talk about the blockchain properties of DAT.
These are the 3 primary Bitcoin block header data-points I’d like you to consider when applying Digital Assembly Theory, and why:
- 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.
- 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 select events that may occur during a given experience when visiting an ordinal, adding temporal evolution to your project.
- 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 up to 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 deterministic method rooted in non-arbitrary block data for extending a given hash to accommodate the number of data points required for using the arrow of time to evolve ordinals over time. It can also be used for large projects (like constructing Galaxies!) to generate additional deterministic data-points for selecting the traits of a given Digital Construct. I will reach for this tool again and again as the starting point of my experiments.
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 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
Byte Modalities (Coming soon)
Sometimes you are going to want hierarchical traits. For example, if you’re creating a 3D avatar collection and you have Seven Alien Races to choose from, each race may have completely different properties. One race might have tails and cat ears, another might be a sentient ball of gas, and they would likely share very very few characteristics in common.
Likewise, a musical composition can require many many different data-points to sound cohesive and whole. You have tempo, key, and scale, but that’s just the tip of the iceberg! The melody might be constructed as a descendant trait of the scale, using non-arbitrary data to underpin the focal notes of the composition. Then you have different instrument tracks, song sections to deal with, etc. You’ll need more data than a single bitcoin block-header can provide outright given what we have access to currently.
Byte Modalities works on a very simple premise. What happens when you interpret the data a different way? A hex-byte is also a fraction, and that fraction has a complementary value, and if you take those two values and get the difference between them then you’ve got another value that represents a way of interpreting the data. Bitoshi Blockamoto, in the opening of Bitmap Theory’s Whitepaper said it best… “It takes advantage of the nature of data’s unique ability to be parsed from multiple angels.” – That’s basically what Byte Modalities is… taking advantage of data’s unique ability to be parsed from multiple angels to create additional deterministic data-points for hierarchical trait selection when you need it – derived from non-arbitrary block data.
Multi-Dimensional Tools and Apps
As I work through the rest of the Digital Dimensions Theory creativity framework book I’m writing, you’re going to see more and more Javascript tools and Apps for experimenting with the concepts I teach, that will help you achieve various project-related goals, like experimenting with Hierarchical Trait Expression, Event Timeline Management, Decision Trees for Branching Timelines, and other tools I haven’t conceived yet.
I’m building in public here. And I’m not done putting tools in the toolbox, yet.
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 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:
- 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!)
- 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.
- 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 yet another approach to creating complex, evolving digital constructs by leveraging the temporal and structural data inherent in the Bitcoin blockchain. By drawing inspiration from the core principles of Assembly Theory and M-Theory, DAT provides a robust framework for meaningful digital creation built on the back of DMT.
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 expanded 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
💐💐💐 are due to the Block Runners for the introduction of Digital Matter Theory. I’m not here because I came up with the application of Non-Arbitrary Trait Expression and Selection using blockchain data, myself. I’m here writing this because I learned Digital Matter Theory. I haven’t forgotten that. And I won’t. It’s important to acknowledge these things.
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, 💐💐💐 for @Blockamoto and Bitmappers across the world. Get in there, get your hands dirty, and BE THE BITMAP. You all with your ideas and passion inspire the fk out of me.