2014/08/17

Q3 2014 Ideas Summary

Approaching what is likely to be a necessary hiring season, I'm going to collect my ideas for startups in a nice, concise format for the sake of pitching. I believe I have written articles on these topics in the past, so they are also more comprehensive references. I'm ranking these by a combination of feasibility, practicality, and profitability - consider the global maxima convergence of all three to be the ranking criteria.

1. Distributed Patronage Funded Media

Ranked first because it is a straightforward profit center, and I can easily plan out the technical details. The only complexity is getting initial users - I believe in the idea enough that given a starter userbase it would explode. Getting the starters would be problematic.

First stage is a QML based device-pervasive application that enables the distribution and consumption of creative content. For utilities sake, we would want to integrate as many third party services as possible (youtube embeds, flicker / imgur integration, etc) but the core competency is that all users would passively use torrents in the background to seed and leech this content. This alleviates the need for huge amounts of money to start up with petabytes of storage and network bandwidth to do a media startup. It also means you never run into the modern YouTube problem - where you accumulate a petabyte of data an hour, and your datacenters grow out of control to contain it all.

Second stage is a webview to consume and upload content into this swarm. This requires enough money to subsidize it though, since there is no way to implement torrent based technologies in a browser, so you need to severely cripple the bandwidth of web users to keep costs under control. But it is functionally mandatory to have a website version of this project just to compete with the entrenched parties involved.

The primary revenue source is integrated patronage. The system takes 5% (subject to change) of all donations to content creators, and the layout is such that users are presented constantly with ways to fund the creators they like. If an advertising company approached us down the line on favorable terms, I see no reason not to let users choose to put ads in their videos and on their pages, but the default will be none.

To avoid the copyright fiasco, the terms of use are simply that any uploaded content must be relicensed to a creative commons license and the uploader must have relicensing rights. IE, they are recognized IP owners. Anything less gets deleted, to avoid the copyright morass, and to guarantee all content from this project is copyleft, so anyone can reuse it on their own - all works would be licensed under the CC attribution share-alike license, and anyone who cannot reassign copyright to that gets their content taken down.

The long term feasibility of this project hinges on adoption. I feel that a properly guided patronage system is revolutionary, to such a degree if I could get this project to take off it could approach YouTube and Facebook scale in a matter of years. If it grows fast enough, more centralization to spur adoption is always an option - no matter what, I want the distributed backend to stay an option because it decentralizes backing up the content swarm. I also expect that in the same way popular torrents see thousands of seeders, a legitimate option that enables seeding of liberated content would be huge.

To get that adoption, I imagine outreach is necessary to content creators to try it, and to get some short term exclusivity deals if possible. It is essential to get really good media works to start interest in the platform, or else it would wallow in obscurity on the edges of the Internet.

2. Continuously crowdfunded persistent world

This project is a combination of two concepts in recent years - patronage, and game development - in a way I feel is much more mutually beneficial than the current progression towards super-alpha releases. Today, while many media classifications are diversifying into patreon and subbable, et al, gaming remains rooted in kickstarter campaigns that go radically over budget.

Well, the reason is obvious - they cannot properly budget how much a game will cost to develop when they are forecasting years of development time. While I do not see an easy way to combine patronage with fixed point release titles, a massively multiplayer game is a much different proposition.

I have drafts of a novel fantasy world that derives a lot of Lovecraftian themes instead of Tolkeinesque concepts. Quake was one of my favorite video games ever, for the theming, and I think it is dearly lacking in more modern titles. The most important distinction is business model - this game would be entirely funded by patronage creating new content determined by what players want to pay for most. New end game content? If it gets funded first. More questing zones? Fund it. So on and so forth. It would also, as per my other projects, be completely free and open source under the GPL and CC-A-SA licenses for code and assets respectively.

This project is much grander than the former, but is poised to make significantly better margins. It basically has three components - the website, providing all the traditional gamer features like character profiles, item and monster databases, guides, forums, etc - plus the donation pages to fund content development, and infrastructure for users to upload, discuss, vote, patch, etc their own in engine creations, along with means to easily download and try usermade content. The tools to build game assets, depending on usability of other tools, that need to be usable by the end users to produce content. And the game itself, which I would love to try using qt3d and qml to build a highly modular interface and portable engine that can easily go ultra-cross platform with user configurable QML UI elements.

Again, this is an industry shattering idea - if it worked, it would change gaming, funding, etc forever. It would not need many users to be successful because there is no colossal investment upfront to build the game - there is still a larger investment than the previous project, because you do need the website, world design, and game in a usable initial state to give players a taste - but that is the glory.

Modern games, primarily MMOs, have huge upfront development costs to provide thousands of hours of content out of the gate to players. Mainly because Ultima Online and Everquest did it. This game would start minuscule - a single starting zone, one dungeon, for one race, from levels - say - 1 to 5. That means the art design required  is minimal, it is just the development time to prepare the game. Since we are not subscription or cash shop based, player retention is not as important in the long run - we just need players to find something they like, that they want more, and who will put money where their mouth is. As long as the content is of sufficient quality, players would pay to get more. This enables constant evolution of the project as more players join, where higher revenues enable more developers to work on the project, and you get a positive feedback loop of faster and more diverse content attracting more players to a free software title with user contributions that then captivates them to contribute back to see more of what they like.

3. Magma Language (and OS redesigns in general)

Low level languages suck. I start here, but this idea is broader than just a language. But I digress. To start, the world is built on C, and it sucks. But it will take a startup to upset that, because large companies are already vested in the status quo too much. But at some point you realize the technical debt of the modern personal computer is becoming preposterous, when you realize that the locale library in C++ has more members than the entire containers library.

So Magma is not just a language, but an idea - we have 50 years of bloat and cruft on our personal computers, and we are right near the end of Moores Law. A project started today to correct for that could see performance and productivity gains in magnitudes for years, that continue to improve technology when the silicon does not. But not only that, but as more people are coding each day, and code is contributing more and more to global productivity, optimizing coding is more important than ever.

Rust is a language that tries to fix C++. But it is still like C++, which is kind of its weakness. But the real weakness is that fundamentally all computers are now running in abstractions knee deep, faking cache, faking ram speeds, faking disk IO, faking network IO, faking core count, faking execution orders, and faking parallelism. Rather than that, I'd want to design an assembly language around heterogeneous computing, consider all volatile and non-volatile storage as cache to the network, with a return to simpler electrical designs of interconnects based around one bitwise communication protocol, with state negotiation - you either have one or many parallel pipes, giving you a serial or parallel port. It is always bidirectional, and the clock rates determine the line bandwidth, power draw, and latency. This lets you have everything from 5hz blinker leds to 16ghz 256 pipe parallel busses to graphics cards in one architecture. Think Networking - you have a fundamental ethernet layer that uses MAC and is IP agnostic, and you use packet encapsulation to have higher level protocols inside. Same concept applies here, you can forsake timings and bandwidth to get consistency and simplicity like packets, or you can do bitstream high bandwidth bidirectional communication on one line.

You take a modernized hardware architecture, add in a modernized heterogeneous ISA, build a microkernel on top of it, forsake the present device hegemony besides what adapters you could integrate (which would not really be hard - active usb converters would be simple, and this system would need ethernet layer compatibility to communicate with other systems all the same).

This one is last because its ridiculous. Nobody would fund it, yet it is probably the most lucrative project here. On the backs of reinventing OpenGL a dozen times, and reinventing C a hundred, maybe its time to rethink the foundations to better enable developers of the future. I have barely scratched the surface of the insanity mandated by whole sale rebuilding computing ground up for modern paradigms and capabilities, but I still think it is important that someone do it. Plan9 did it at the turn of the 90s, and while it never became popular, it may be because they didn't go far enough. They were close, though - the benefits almost outweighed the cost of transitioning away. The fact they called it a research project that whole time and never gave it a chance doomed it from the start, but fixing computing is essential for the future. I'm talking the hardware you want the first sentient AI running on.

All three of these ideas are things I am deeply passionate about, to the point where I would work for free on any of them because I believe in them that much (just give me ownership stake). So as I progress through this season, I'm actively going to be looking for like minded individuals to pursue some of this insanity with me. Maybe we could change the world.

Update: Just going to suffix on additional ideas.

4. The cryptocurrency

Bitcoin is great and all, but really it is a replacement for gold, the store of value, not dollars, the medium of exchange. Because bitcoin and litecoin have finite caps on the total number of coins generated, and that generation degrades over time, it means that inflation only slows over time from the volumetric size of the monetary base. And then there are coins like dogecoin and peercoin, that perpetually generate more coins at a constant rate - in dogecoins case, it is 6 billion coins a year, in peercoins case, its 1% of coins every year. This means doge deflates over time as the size of the base becomes larger, and peercoin has constant inflation.

But the truth is the size of the monetary base is largely irrelevent as long as money is distributed well. Inflation and deflation on their own do not matter as much either. What matters is the objective of money, and the metric by which a successful currency works, which is monetary velocity - how fast money moves through the economy.

No cryptocurrency today addresses this - constant inflation or finite coins mean the algorithm is blind to how the currency is being used. Instead, what you want is an algorithm that adjusts the coin generation rate according to how fast money is moving - as velocity slows, you generate more coins to promote inflation and spur money transfer. When its speeding up, you generate fewer coins to avoid oversaturing the market while preserving the coins value.

On top of that, you maintain the staples of crypto - proof of stake and work, fast transaction times, smaller blocks, etc. I'd also want to include a dns system in the protocol - the ability to exchange with someone by name instead of by address. Just having a distributed dns service could work, but integrating it into the blockchain would be novel as well.