From IPRE Wiki
Revision as of 20:00, 18 August 2014 by Doug Blank (Talk | contribs) (What's new in Calico2)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Calico Logo

The Calico Project is a framework for learning, doing, and playing with computation. At its core is an integrated editor, interactive console, and social interaction framework for exploring computer science through modern, dynamic languages. It is designed to be a simple, yet powerful, integrated development environment (IDE) for students, teachers, researchers---and regular humans, too! It runs on most any operating system, including Linux, Mac OS X, and Windows. All sources for the Calico Project are open and free---freely available and you are free to use them in various ways.

For information on the new version, called ICalico, please see ICalico.

Calico main window

Calico is currently under development. It contains many components:

  • Choice of languages, which can inter-operate: Python, Jigsaw (a graphical language inspired by Scratch), Ruby, Scheme, Java, F# (OCaml and ML), Boo, Lisp, Basic, Logo, and more under development...
  • Selection of interesting libraries: Myro (robot control, music, sound), Processing (art and animation), Graphics (physics, turtle graphics, and games), Kinect, and more
  • Editor - simple, but powerful customizable editor
  • Shell - integrated languages
  • Chat - communications framework for talking and sharing


The IPRE Robot kit. The robot (with camera) can be controlled wirelessly with Calico in a variety of Programming languages.

For a full paper on Calico see:

Calico: A Multi-Programming-Language, Multi-Context Framework Designed for Computer Science Education. (2012). Douglas Blank, Jennifer S. Kay, James B. Marshall, Keith O'Hara, and Mark Russo. SIGCSE 2012 (Raleigh, NC).

What's new in Calico

Calico: Whats New

Table of Contents

  1. Calico Overview
    1. Calico Nifty Projects - sample projects you can do with Calico
    2. Calico FAQ
    3. Calico Differences - current state of differences between CPython + Myro and Calico Python + Myro
    4. Screen Shots
    5. Videos
  2. Calico Download - download and install Calico for Windows, Mac, and Linux
  3. Calico: Getting Started
  4. Documentation
    1. Learning Computing With Robots Using Calico Python - textbook for fall 2011
    2. Educator Resources
    3. Modules
      1. Calico Myro - robots and more
      2. Calico Processing - the Processing API brought to Calico. See also the Calico Processing Reference.
      3. Calico Graphics - 2D graphics and physics
      4. Calico Csv - comma-separated value files (spreadsheets)
      5. Calico Adruino - talk to Arduino board interactively; see
      6. Calico Events - broadcast and receive messages with publish and subscribe
      7. Experimental Modules
        1. Calico Gtk Low-level Graphics Toolkit - for menus, buttons, and other GUI interface
        2. Calico Sprites - for controlling sprites on a stage
        3. Calico Kinect - interface to the Kinect, through Kinect server running on Windows
        4. Calico Math - collection of math functions
        5. Tao - contains SDL, the Simple Direct Library for games
        6. SdlDotNet - OOP wrapper around Tao.Sdl low level libraries (pygame for .NET/Mono)
        7. MathNet - commonly used mathematical elements for scientific numerical computations
        8. FarseerPhysics - 2D Physics Engine (used in Graphics)
        9. Calico Conx - neural networks
        10. Calico Emgu.CV - web cams, image processing, and computer vision
        11. Calico DataStructures - data structures
        12. Calico AForge - designed for developers and researchers in the fields of Computer Vision, Artificial Intelligence, image processing, neural networks, genetic algorithms, machine learning, robotics, etc.
        13. Calico Accord - complete framework for building machine learning, computer vision, computer audition, signal processing and statistical applications
    4. Languages - see Calico Status for overview of all languages' statuses
      1. Calico Python - popular scripting language
      2. Calico Ruby - popular scripting language
      3. Calico Scheme - a simple, modern language
      4. Calico Boo - similar to Python, but with types
      5. Calico FSharp - similar to OCaml and ML
      6. Calico Jigsaw - a drag and drop block language
      7. Calico Spreadsheet - a simple spreadsheet viewer and editor
      8. Experimental Languages
        1. Calico Logo - s simple language which has much of the same beauty and power of Lisp
        2. Calico BrainScrew - a very simple language
        3. Calico Lua - a common language used for embedded systems, games, robotics, etc.
        4. Calico Dinah - drag and drop language
        5. Calico Sympl - similar to Lisp
        6. Calico CSharp - interpreted C# (no functions or classes)
        7. Calico Basic - Basic interpreter (uses Calico Modules, access to calico instance)
        8. Calico Java - Testing a Java Interpreter
        9. Calico Collaborate - Collaborative programming inside Calico
        10. Calico Console - cross-platform Unix-style or DOS-style console language
        11. Calico LC3 - assembly language, with tracing support and memory in a Calico Spreadsheet
  5. Discussion:
    1. Calico User's forum - searchable
    2. Calico Developer's mailing list
  6. Bugs:
    1. Calico Bugs - Current shortlist
    2. Report Issue
  7. Calico Development

Calico (was Pyjama) is a product of the Institute for Personal Robots in Education, and funded, in part, by Microsoft Research and the National Science Foundation.