Why Valaa is Open Source

When we set forth to solve our initial problem, we didn’t think of building the potential backbone for Web 3.0.

Ville Topias Ilkkala
valaa.log
7 min readApr 2, 2018

--

We spent 8 years building interactive content for educational institutes and governmental organizations. In 2015 we set to create a platform that would empower our prior clients to make this content themselves. It shouldn’t be too hard — we thought — once we define what interactive content meant to them. And to us.

After 1.5 years of R&D and several prototypes later we know the answer. Bill Gates knew it already in 1996: it’s anything and everything. Interactive content equals all software.

When it comes to an interactive network such as the Internet, the definition of “content” becomes very wide. For example, computer software is a form of content — an extremely important one, and the one that for Microsoft will remain by far the most important.

- Bill Gates, Content is King

Luckily we didn’t spend the two years idling and pondering. We built like crazy trying to make software development accessible to everyone. We reinvented almost every aspect of software development and distribution while doing so. We also found answers to many of the current problems we face with technology.

We haven’t yet solved the original problem. Valaa is not yet something a teacher can pick up in a bus on her way to school and create a learning game. We only reached a point where a global community working together can make that into reality. That is why Valaa is open source.

Next I will go through the central components of Valaa. Things can get a bit technical at times.

Reinventing Software Distribution

We base the privacy of our web services on trust, not on open infrastructure. The recent Facebook data leak is a symptom of an underlying problem in the architecture of the Web. Users should be able to know — not trust — that the data they decide to keep private is and stays private.

Valaa solves this problem by treating applications as data, too. I explained this in more detail in my previous post. This way the software is no longer dependent on the client application. The clients can be open and transparent, while the data — e.g. the software — can be end-to-end encrypted.

In Valaa, software is not downloaded as a whole, but instead stored and streamed to users as a series of events. Valaa client is application agnostic and only subscribes to these event streams. It then reconstructs the events into an in-memory Valaa Resource Model (VRM). The client also listens for future updates in these streams and updates the VRM.

Partition is a singular list of events that only makes sense as a whole. Authorities are responsible of governing the Partitions and adding new events to them. Authorities can exist anywhere: from the local browser to cloud or even blockchain.

This approach has other benefits as well:

  • Applications are data and thus consistent and reliable across different browsers and platforms. The universal client application handles all compatibility issues.
  • Applications consist of many partitions that are not all needed at once. Thus, application logic and data can be lazy-loaded with high granularity.

Paradigm Shift in Reusability

Main components of Valaa Resource Model in use. Valaa Relations are not like relations in traditional relational databases. They can contain other Resources. They can even have user interfaces!

Reusability of software components is central to our vision. We built Valaa Resource Model to be a paradigm shift in what we can expect from reusability.

Valaa Resource Model defines three primitive Resources: Entities, Relations and Medias. Valaa Resources live in a unified, global and decentralized network of Authorities.

All Valaa Resources are like classes from object-oriented programming. They can have properties and you can instantiate them. But they also behave like file folders: all Resources can contain other Resources.

Entity is analogous to a file folder, class and an object and is the base building block of Valaa Resource Model. Medias and Relations extend Entity with supplementary features. Medias reference binary data objects and files. Relations are like Entities, but they can also have a target — usually another Resource. All Resources can have properties with literal values or references to other Resources.

In other object-oriented languages instances inherit only the top-level properties. Instancing in Valaa is like taking a copy of an entire folder structure. Instances inherit everything from their prototype without consuming extra memory.

VRM’s power lies in sharing data and logic across Partitions and even Authorities. A component can in fact be an instance of an instance through a chain of thousands of contributors.

Placing an instance inside it’s prototype creates recursive inheritance. You can even make modifications to the procedural content.

Lowering The Threshold

In 2020, U.S. will will have a shortage of up to 1 million workers to fill vacant computer-science related jobs. There is more and more software to be build for sure, but keeping up as a modern web developer is also damn hard.

Our goal is to turn basic skills in HTML, CSS and JavaScript back to the superpowers they once were. Building and deploying a single-page web application shouldn’t need any third-party libraries. Valaa doesn’t meet this goal by being a one huge library with everything pre-installed. It doesn’t decide how you should build your software, either. Valaa accomplishes this with a system called Lenses. They are views to the Valaa Resource Model and written in almost plain HTML. Lenses react to changes in the VRM.

ValaaScript extends JavaScript with tools for changing the state of the VRM. ValaaScript can exist in their own medias or written as inline to the Lenses. Valaa sends state changes as commands to either local or remote Authority. If Authority accepts a command, it streamed back to all subscribing clients. This causes Valaa Resources to change and Lenses to update. This completes the update cycle and is in a nutshell all there is to Valaa.

Hello World from scratch to publishing it online takes less than half a minute with Valaa Zero IDE.

The New Social Dynamic

We have lowered the threshold, but we didn’t manage to bring it all the way down. Artists, scientists and educators with no experience in HTML will still have to learn a lot. How can we keep on making software development more accessible? Is there a limit?

Partnerships will be one of the keys. We are already working together with Wolfram Research, the creators of WolframAlpha. Our collaboration will bring billions of data elements to the reach of everyone. Users also gain access to powerful mathematical and analytical tools from Wolfram Language.

We are looking forward to the upcoming API to InVision. This will allow users to turn their designs into production ready software with ease. We also follow the work made by UIZard in turning sketches into HTML with the power of AI.

Users can create Valaa applications designed for building other Valaa applications. Our first cloud IDE — Valaa Zero — is an example of this. It is nothing more than another Valaa application, streamed to users as a series of events. We can build new visual languages tailored for specific abstraction levels. Building editors for predefined content categories and genres is straightforward.

State machines are often used to structure the flow of applications. This visual editor is a Lens to Valaa Resource Model designed for editing state machines. I built it in one done day as my entry to our internal Valaa Jam.

This will be a key for the new social dynamic: users who can create helping those who still can’t. Last year I wrote a blog about this. I added one idea for reducing participation inequality to Jakob Nielsen’s list:

Allow your platform to be transformed by the creators themselves to invite contribution from those who wouldn’t otherwise contribute.

From IoT to Virtual Reality and Beyond

Our reference implementation of the event system uses MQTT for event transfer. MQTT is a machine-to-machine connectivity protocol powering most of the Internet of Things. This gives arise to ideas on how IoT devices could have roles as Clients or even Authorities. Sensors could stream data as events to Partitions to which dashboard apps subscribe. Users could customize the functionality of their home appliances. Valaa provides enormous opportunities in transforming different industries. Valaa could become the ubiquitous platform working as the backbone for the Web 3.0.

Valaa provides a seamless integration pathway for existing JavaScript libraries. Among others, we have tested D3 for data visualization and Aframe for virtual reality. We are also looking forward to getting our hands on Google’s new ARCore.

Virtual reality demo built with Valaa and Aframe. It allows users to explore all recorded star systems that have known exoplanets. Planetary data comes from Wolfram Cloud.

What next?

Unfortunately the original Valaa as a company didn’t survive this journey. After two years of self-funded R&D our runway came to an end. A new company was recently set up to build a business on top of the Valaa infrastructure.

Valaa Technologies continues the work with most of the old team still on-board. Our three main goals for the next six months are users, use cases and utility. Valaa Technologies has a business strategy built on open source.

We will be offering professional services from project development and education to consultation. We are more than happy to help you to get started with Valaa or set up your own Authority.

We will also offer hosting services for private Authorities. During 2018 we are launching a free web platform for open source Valaa content. It will be a place for developing, sharing, and collaborating on open source Valaa content. All applications will be usable from the browser, so it will double as a hosting platform. We will monetize the platform with Premium features and advertisements during Partition loads.

We are going to distribute 30% of our subscription revenue back to the open source developers.

Valaa is licensed under MIT. You can find the source code here. If you have questions or ideas, feel free to reach out to me via email at ville@valaa.com. We host a Valaa workshop every Tuesday at Tribe in Tampere, Finland. We are also presenting at TampereJS meetup on 5th of April.

We are looking for partners and collaborators to join the Valaa community.

--

--

Ville Topias Ilkkala
valaa.log

I work with companies, universities, research groups, nonprofits and foundations towards a digitally transformed society. I’m the co-founder and CTO of Valaa.