Just 25 of our go-to tools for learning about the potential of new technologies
Here at IDEO CoLab, to say that we’re fans of prototyping is an understatement.
We’re constantly prototyping. In 2017, we’ve already built over 93 prototypes — and the year’s not over yet. We believe that prototyping helps us get closer to the future. Only by building a fleshed out prototype can we get a sense of its challenges and possibilities, revealing insights that give us a glimpse of where emerging technologies like blockchain, AI, IoT, and XR can take us.
Needless to say, we’ve gotten very familiar with different build tools and we’d love to share them with you. Below is a (very non-exhaustive, non-conclusive) list of some of our favorite tools we return to time and time again. We’ve sourced our most-used tools across four categories: Blockchain, IoT, AR/VR, and AI. We hope you’ll enjoy using these and possibly even learn about a new tool or two that will change your build sprints for the better.
Happy building. 😄
Blockchains are good for more than just cryptocurrency — we believe they’ll power many of tomorrow’s decentralized applications, but only if we prototype to get them right. Blockchains are powerful tools that take time to master, but the effort is well worth it. Use a blockchain when what you’re building requires a decentralized system for managing smart contracts, verifying data, protecting user security, or dealing with financial assets.
- Truffle: The most popular development framework for building on Ethereum, which is itself the most popular platform for distributed applications (dapps) and smart contracts.
- Chain Core: A blockchain-as-a-service protocol developed for the financial industry, Chain is helpful for tracking financial assets and their issuance data. The data structure is based on Bitcoin and is largely compatible with many new features developed for Bitcoin.
- Tierion: An extremely easy-to-use tool for data verification on the blockchain. Tierion uses timestamp anchors to verify data, files, processes, and more.
- Blockstack: An open source decentralized internet project, in which data and apps run locally without remote servers. Out-of-the-box support for decentralized identity and file storage makes it easy to get dapps up and running.
- IPFS: A decentralized approach to replacing the HTTP protocol. IPFS provides a data network and storage backbone for an emerging generation of dapps.
It’s not really a prototype until there’s something a user can hold, touch, see, hear, taste, or just generally interact with. And that’s where a lot of IoT tools come in — they provide the real-time responses between connected devices that make a prototype experience feel real. These are some of our favorite tools for bringing a project to life.
- Pubnub: The only software tool we use regularly that’s for IoT prototypes. Pubnub is useful set of APIs and infrastructure that allows you to manage the flow of data between IoT devices. It also provides real-time device data and reporting, among other things.
- Raspberry Pi: A tiny programmable computer that’s at the heart of many of our IoT-related projects. These things are small, but mighty — they can run Linux and other operating systems, and have integrated hardware for things like ethernet, USB peripherals, video/audio processing, data storage, and more.
- Arduino Boards: An open-source series of microcontroller boards that are easy to program and have an extensive free library of example code. We love these because they’re quick to get running and aren’t super intimidating. These are great boards for managing all kinds of tasks, with a wide variety of board options available to suit your project’s needs.
- Particle Photons: An inexpensive microcontroller board with powerful WiFi capabilities, Arduino-like programming, and a nice web-based device manager. The Photon allows over-the-air deployment and can even connect with IFTTT, so you can do a lot with these right away.
- Adafruit Feather Boards: A series of light and lean low-power microcontrollers. These can also connect to IFTTT through the Adafruit IO.
- littleBits: A modular electronics library that snaps together with magnets. Even after years of using these, we’re still amazed at how quickly non-technical folks can make functional circuits. We often hack our bits to wire them directly into the microcontrollers mentioned above.
- Sensors and components: We also keep drawers full of resistors, capacitors, transistors, LEDs, motors, potentiometers, buttons, rangefinders, relays, FSRs, breadboards, and countless old IoT devices for our future circuitry needs. Basically if it has a circuit in it, we save it in case we need to hack it later!
XR includes a spectrum of technologies from Augmented Reality (AR) to Virtual Reality (VR). These are powerful tools for showing what a prototype can do, since they immerse a user directly in the experience. There are a wide range of tools, from hardware to software platforms, you can use to build XR experiences, depending on your budget and time constraints. Here are a few that we return to again and again.
- Google Cardboard: It looks like a prototype but it’s a fully fleshed-out product. Google Cardboard is great for starting out, especially if it’s your first foray into VR, due to the wide selection of APIs that extend the platform to iOS developers and Unity developers, and more.
- HoloLens: Although on the pricier side, HoloLens is worth it due to its robust AR capabilities and ability to input gaze, gesture, and voice commands.
- Unity: A game development platform that now extends of all of the major XR players in the market. This is a great tool for immersing your audience in your prototype, especially if you’re already familiar with the platform.
- A-Frame: A VR framework that’s built on HTML. Super fast to get started — you can create an application with less than 10 lines of HTML!
Artificial Intelligence Tools
AI is a powerful tool but often requires a big time investment for proper training, but it’s well worth it. These are our favorite tools for getting up and running quickly, so that we can test the viability of a prototype before investing too much time going down any one path.
- Watson: Watson is IBM’s robust AI engine with a bevy of useful tools, including natural language processing (NLP), conversation abilities, image recognition, and more.
- TensorFlow: An open source machine learning library that uses data flow graphs and can be used for a wide variety of projects, including ones with image recognition.
- Keras: This tool was made for prototyping! Keras is neural networks API built specifically to enable rapid experimentation, with an easy to understand UX — great for those just getting started with AI.
- Scikit-learn: An all purpose library for a range of machine learning algorithms in Python. Not everything needs a neural network.
- Synaptic: Who says you can’t build neural networks on the front end? Try this awesome tool.
- Jupyter: An open source web app notebook that allows teams to share live code documents. It’s also (nearly) language-agnostic and integrates with a variety of big data tools. We use it as an all-purpose interactive Python environment and notebook to quickly prototype with data and machine learning.
- Voice interfaces: We also interface with AI via the new personal assistants on the market such as Amazon Echo and Google Home. Their NLP helps bring AI bot capabilities into new places. We’re also excited about projects like AIY that create more maker-focused versions of these consumer devices.
- Bots: It seems like there are new bot frameworks coming out every day from companies big and small that are great for prototyping. We find ourselves using Facebook Messenger quite often as an initial tool because it’s quick to Wizard-of-Oz a bot (by putting a human on the other end) to experiment with the script, and then plug in a bot engine (like Microsoft’s or Wit.ai) once we have the interactions refined.
Interested in building with us?
We offer two fellowship sprints a year, and we’re looking for multi-disciplinary engineers, designers and business-minded folks who want to help build new prototypes with emerging technology.