Thanks @FranklinBaldo for your contribution!
Future-Proofing Forecasting: Easy Open-Source Solution
Project summary
We are developing SocialPredict, a free and open-source prediction market platform that anyone can use.
The rise of powerful forecasting tools is exciting, but carries the risk of toxicity and misuse. To address these concerns, we propose an open-source, user-friendly platform specifically for walled-off settings such as educational or internal corporate settings. This empowers teachers, managers and smaller groups to:
Forecast future events when material conditions are in flux
Give the world access to an MIT-Licensed, completely free and open source access to a quality prediction market forecasting tool, thereby lowering costs of adoption and raising overall global prediction market user rate.
Allow walled-off instances to be run for educational, corporate, group or non-profit settings where the budget may not be the highest and the need for small community moderation may be high, to reduce the aforementioned potential toxicity.
We hope that by giving people the tools to set up their own prediction market software, we can help make forecasting more popular and less daunting, fostering more critical thinking worldwide during unpredictable times.
At the moment we have an MVP - check it out at brierfoxforecast.com. This has the latest version of the software deployed. Here's a screenshot (from a local machine):
You can check out our repo on GitHub here - if you like it, star it!
We also have instructions for running your own local version of the software here and software that you can already deploy on the web. If you want to try it yourself, instructions are here.
What are this project's goals? How will you achieve them?
Our goals are to have a fully functional, secure, easy-to-use version of the software ready to be deployed online. We're getting there by:
Backend refactoring and testing - the backend works as a proof of concept but it could work better. At the moment, there are still plenty of edge cases where the software could fail, and we obviously want to catch those before lots of people start using SocialPredict.
Testing SocialPredict on our machines and on the web.
By September we should be rolling out SocialPredict to any communities that want to try it out. This will be a great opportunity to see how users “in the wild” interact with the software and we'll probably find lots of bugs to fix, software quirks etc. What fun. But also very important to make forecasting more accessible and popular.
How will this funding be used?
Compensate our backend developers. We need database backups and we need backend refactoring and testing so that SocialPredict works the best it can.
Hire a designer. Good UI and UX will make adoption of SocialPredict easier…and to do that we’d love a designer!
Compensate our frontend developers for hammering out a much improved frontend.
Pay for our DigitalOcean computing costs.
Who is on your team? What's your track record on similar projects?
Our team consists of:
Patrick Delaney, an experienced backend developer, founder of multiple tech conferences, and probability tutor to lemurs.
Brian T. Edwards, who founded Deepvail, a quality assurance ecosystem for high-risk AI systems. He is a prediction market advocate.
Marko Kovač, a frontend developer and huge tech lover with 2 years of experience. He's worked on everything from Saudi eSports to developing a travel expense hub for the Croatian Volleyball Association. Currently he's contracted with Open Reply and working on a project for Porsche.
Arthur Lacey, a software engineer at Google with 16 years of experience.
Bruno Perković, a backend developer with 2 years of experience.
Osnat Katz Moon, a metascience and forecasting enthusiast with a PhD in science and technology studies. She watches how people make predictions in practice and deploys and tests software.
We are an international team brought together by our love of open-source software, technology, and forecasting. All of us have established track records in what we do - from software development to founding companies to interdisciplinary research - and we are bringing our expertise together to tackle a big, complicated problem and advance the adoption of forecasting.
What are the most likely causes and outcomes if this project fails?
Potential causes of failure:
1. Team loses motivation
2. Lack of community adoption or engagement
Outcomes if the project fails:
1. We will continue development using our own resources, covering server costs through personal contributions or seeking alternative funding sources.
2. Lessons learned will be documented and shared to benefit future similar projects. Even if we fail - and we hope not to - we hope our failure will pave the way for future success.
What other funding are you or your project getting?
Currently, this project is not receiving any other funding, though we have thus far spent $953.24 and 86% of that has been self-funded by Patrick. Our team is committed to creating this open-source platform and has been bootstrapping the initial development. This grant would be the first external funding source, and would help us immensely in taking SocialPredict from a very early production version to something more suitable for widespread adoption.
Jack Robinson
3 months ago
I’ve spent much more money on things that are sillier and of less value than this, a scientific endeavor that would be something good and worthwhile. Good luck!
wasabipesto
3 months ago
Nice to see this project is still going, I haven’t heard much about it recently.
Some questions:
Does https://brierfoxforecast.com/ represent the current state of development? Are there any other currently-active instances?
What’s the advantage to running an independent instance? Why would a small group go through the trouble to run an instance instead of using an already-established server?
Do you have any changes to market structure or feature set planned to differentiate you from competitors? Are you implementing the same AMM used by Manifold?
If the application is intended to be run locally, have you tested the resource usage for a typical instance? Could it run from, say, a laptop or home computer? What size is the DigitalOcean server used for the demo instance?
Osnat Katz
3 months ago
@wasabipesto Hi! To answer your questions:
brierfoxforecast.com does represent the current state of development, I also set up my own instance at openprediction.xyz. Development is ongoing, we're still pushing changes, etc.
possible use cases for running an independent instance rather than using an established server include: privacy and data protection concerns, wanting to have a fallback solution in case something happens to the established server, wanting to have software that an admin can tinker with and configure for different use cases, wanting to have software that's performant on lower-end machines
our feature set includes the ability for admins to customize their own setup, decide how much market making should cost, and how much debt a user should be allowed to get into: https://github.com/openpredictionmarkets/socialpredict/blob/main/README/README-CONFIG.md
down the line we'd love to implement variable economics, but at the moment this is lower priority than backend improvements
it's intended to be deployed in the cloud, but yes, you can run a local dev instance on your machine. I run a local dev instance on an old laptop with 8 GB of RAM and Ubuntu 22.04 and it's highly performant. My staging instance at openprediction.xyz uses a virtual machine with 4GB RAM and an 80 GB hard drive. These are some load tests we did 3 weeks ago: https://github.com/openpredictionmarkets/socialpredict/issues/227
though of course we're on a new version of the software now, which means more and different load tests, so thank you for the reminder
Patrick Delaney
3 months ago
@wasabipesto chiming in to try to address some of your questions from a different perspective.
Do you have any changes to market structure or feature set planned to differentiate you from competitors? Are you implementing the same AMM used by Manifold?
A hand-wavy outline of how probability gets calculated and markets paid out is here.
The actual transform itself in the code is here:
and market probability calculation here:
The way shares get allocated is basically a, "geometric," allocation transform that I came up with myself by just visualizing it on paper and then wrangling the code until it made sense.
What is an Automated Market Maker (AMM) and why is it needed in your mind?
My thought would be, we could give folks who administrate their own servers the ability to create market makers or automated market maker accounts and have a specific user model that supports these types of activities. Since SocialPredict is open source and since the vision is, "for all," we would like to make this as abstract and non-opinionated as possible. It seems to me that the existence of an AMM, however that is defined, would be an opinion, not a requirement, and that we could either build a plugin for it or just a user model that could support either Market Makers, Sponsors in the traditional sense or "Automated," market makers. E.g., perhaps it could be accomplished by just having a bot account with a lot of funds added to it and some specific instructions on how to behave. Perhaps this bot account could be running on a container that we set up specifically for automation tasks, and allow admins to build their own (probably python-based), bots for whatever they would like.
What's nice about automation is that it does something repetitively, but at the same time, to someone running their own server this may become a bug rather than a feature.
Local deployment:
Follow the instructions below. As Osnat stated, she has it running on a machine with 8GB of RAM. I'm currently running this locally and doing my development on a Macbook Air 2014 with 4GB of RAM using Ubuntu 22. It's designed to be lightweight and performant.