Exchanging value on Matryx

Last month we open-sourced Calcflow, our flagship consumer software, and received a tremendous response. We pride ourselves on being one of the few organizations in the blockchain and token economy with an existing user base and real products with proven utility. Despite this, we’ve received a lot of questions about how exactly Calcflow relates to our blockchain platform, Matryx, aside from them both falling under the general umbrella of STEM software. Calcflow isn’t just an app that will feature some superficial integration of Matryx- in fact, the two are deeply intertwined.

Aside from it’s inherent educational and mathematical utility, Calcflow is a powerful tool for design. Within its virtual workspace, users create parameterized functions- multivariable equations that represent 3D shapes.

Rethinking 3D: Parameterized Functions

Parametric Sphere by Maven Studios

In point-set topology, any set of geometric objects that can be continuously stretched and distorted into new shapes can be categorized and parametrized. These strings of characters (a.k.a.”parameter symbols”) and numbers are called “parameterized functions” and can be represented in just a few bytes of data. Parametrized functions allow us to consider topological spaces in analytical, numerical, and statistical applications and determine homeomorphic qualities shared among geometries in a topological space.

High-level mathematics allow us to take any geometric object and parametrize it up to four dimensions (say, an object’s transformation over time as the fourth variable). The result is a lightweight equation that can be stored on a blockchain and stored in JSON format. This is comparable to a 2D “vector” file (AI, SVG), but with additional dimensions:

Parameterized Klein Bottle Rendered in Calcflow

{

“Name”: “Klein Bottle”,

“X”: “-(2/15) cos(u)(3cos(v)+30 sin(u) + 90 cos(u)^4 sin(u) - 60 cos(u)^5 sin(u) + 5 cos(u) cos(v) sin(u))“,

“Y”: “-(1/15) sin(u) (3 cos(v) - 3 cos(u)^2 cos(v) - 48 cos(u)^4 cos(v) + 48 cos(u)^6 cos(v) - 60 sin(u) + 5cos(u) cos(v) sin(u) - 5 cos(u)^3 cos(v) sin(u) - 80 cos(u)^5 cos(v) sin(u) + 80 cos(u)^6 cos(v) sin(u)“,

“Z”: “(2/15) (3+ 5 cos(u) sin(v)) sin(u)”,

“u”: “0, pi”,

“v”: “0, 2pi”

}

Compare this to how a typical Klein bottle would be stored in an .ob j file:

mtllib Klein Bottle.mtl

#

# object Box001

v 8.2537 28.9515 36.4677

v 12.1791 44.4224 32.5422

v 3.3040 44.4224 17.7503

v -1.6920 28.9515 19.8914

Over 1000 lines later…

f 1574/805/1510 1612/843/1548 1613/844/1549 1575/806/1511

f 1614/845/1550 1615/846/1551 1613/844/1549 1612/843/1548 s3

f 1608/839/1544 1611/842/1547 1613/844/1549 1615/846/1551

f 1563/794/1499 1575/806/1511 1613/844/1549 1611/842/1547 s2

f 1598/829/1534 1601/832/1537 1616/847/1552 1617/848/1553 s3

f 1596/827/1532 1609/840/1545 1616/847/1552 1601/832/1537

f 1608/839/1544 1615/846/1551 1616/847/1552 1609/840/1545 s2

f 1614/845/1550 1617/848/1553 1616/847/1552 1615/846/1551

# 448 polygons

Today, OBJ, STL, and CAD files are the status quo for storing 3D object data. Unfortunately, these formats catalog every vertex and edge of an object, often resulting in files that are thousands, or even millions of lines long. Consequently, storing traditional high-resolution 3D data necessitates gigabytes of storage space. Storing traditional 3D data files on a decentralized network or blockchain is impractical, even with scalable storage solutions like the IPFS protocol. Any traditional digital model of something as simple as a “Klein Bottle” is several megabytes. Conversely, when designed and stored as a parameterized JSON, a “Klein Bottle” is just a few bytes in size and it is infinitely scalable.

Mockup of Matryx web exchange.

Today, with the advent of VR, digital worlds, and the internet, parameterized functions, the ultimate 3D object format, are of increased importance. They contain smooth surfaces, completely independent of polygon count. Whether a shape represents an electron orbital that is half an angstrom or a Dyson sphere that’s as wide as the sun, the only difference in the parametrized function is the scalar coefficient. The result is a lightweight data solution that is not only scale agnostic but also optimal for the Ethereum blockchain. Rethinking 3D doesn’t mean that we have to reinvent the wheel. It just means that we need to think more about the wheel than we have before.