Skip to content



Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

Avocado is an open source interaction design toolbox built by​ IDEO.​ It ​enables designers to make quick interactive prototypes without writing a line of code.​ ​Built on top of Facebook's Origami framework, Avocado provides ready-to-use patches that can be easily combined to create fully-customized prototypes.​

We hope Avocado can be of use to you, and please feel free to share your ideas here on GitHub ​or​ tweet to @AvocadoByIDEO.​

###Getting started To get started with Avocado simply register as an Apple Developer, download Quartz Composer (it's in the Graphics Tools package), and install Avocado.

Here are some examples that show how to use Avocado. If you are new to Quartz Composer, take a look at these tutorials.

###What's in Avocado ####Interactions

  • Draggable Layer, a patch that lets you drag and drop a layer and fully customize the behavior of the drag and drop. The Draggable Layer Animation lets you customize the pick-up animation. Draggable Layer Snap Points lets you define points on the screen the layer will snap to. Draggable Layer Boundaries lets you define boundaries for where the element can be dragged. Finally, Draggable Layer Info provides information on the current state of a Draggable Layer
  • Carousel, creates a swipeable carousel of images. Information on its current state is provided through the Carousel Info patch. You can customize the way a Carousel looks through the Carousel Settings patch. You can also control the state of a Carousel through the Carousel Controls patch
  • Bistable, makes an element snap to two positions. Information on its current state is provided through the Bistable Info patch
  • Card, creates a card that can be flipped back and forth. Information on its current state is provided through the Card Info patch
  • Dial, for scroll wheel-like Interactions. Information on its current state is provided through the Dial Info patch
  • Master Detail, creates a Master-Detail relationship between two views
  • Rolodex, for rolodex-like interaction. Information on its current state is provided through the Rolodex Info patch
  • Hit Grid, creates a grid of Hit Areas. To retrieve which element has been clicked use Hit Grid Info
  • iOS Keyboard, provides an interactive keyboard. To retrieve the text being typed use iOS Keyboard Info

####Bluetooth integration

  • Use Bluetooth Send and Bluetooth Receive to uni-directionally communicate with a BLE device
  • Use Bluetooth Connection to bi-directionally communicate with a BLE device
  • Aggregate Values and Disaggregate Value will help you send 4 values at once or decode one message into 4 values.


  • Nod
  • Pulse
  • Jiggle
  • Jump

####Global Value With Avocado you can save values to be retrieved anywhere in the composition or that can be accessed by another composition running at the same time.

  • Save Global Boolean and Retrieve Global Boolean
  • Save Global String and Retrieve Global String


  • Keyboard 2, meant to replace the standard Keyboard patch. It provides information on which key is being pressed
  • Delay Value, delay any value by the specified amount of time
  • Gate, stops the propagation of a signal
  • Invert, flips a boolean value
  • Map to Range, remaps a value to a new range
  • Absolute Value, returns the absolute value of a number
  • String to Number, turns a string of numbers into a number

###Feedback If you have any thoughts or contributions for how we can continue to evolve this experiment, feel free to share your ideas here on GitHub​ or​ tweet to @AvocadoByIDEO.


No releases published


No packages published


  • Other 100.0%