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 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
Table of Contents
- Calico Overview
- Calico Download - download and install Calico for Windows, Mac, and Linux
- Calico: Getting Started
- Learning Computing With Robots Using Calico Python - textbook for fall 2011
- Educator Resources
- Calico Myro - robots and more
- Calico Processing - the Processing API brought to Calico. See also the Calico Processing Reference.
- Calico Graphics - 2D graphics and physics
- Calico Python GIS - functions for Geographic Information System (GIS) experiments
- Calico Csv - comma-separated value files (spreadsheets)
- Calico Adruino - talk to Arduino board interactively; see http://blog.roboteducation.org/node/47
- Calico Events - broadcast and receive messages with publish and subscribe
- Experimental Modules
- Calico Gtk Low-level Graphics Toolkit - for menus, buttons, and other GUI interface
- Calico Sprites - for controlling sprites on a stage
- Calico Kinect - interface to the Kinect, through Kinect server running on Windows
- Calico Math - collection of math functions
- Tao - contains SDL, the Simple Direct Library for games
- SdlDotNet - OOP wrapper around Tao.Sdl low level libraries (pygame for .NET/Mono)
- MathNet - commonly used mathematical elements for scientific numerical computations
- FarseerPhysics - 2D Physics Engine (used in Graphics)
- Calico Conx - neural networks
- Calico Emgu.CV - web cams, image processing, and computer vision
- Calico DataStructures - data structures
- 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.
- Calico Accord - complete framework for building machine learning, computer vision, computer audition, signal processing and statistical applications
- Languages - see Calico Status for overview of all languages' statuses
- Calico Python - popular scripting language
- Calico Ruby - popular scripting language
- Calico Scheme - a simple, modern language
- Calico Boo - similar to Python, but with types
- Calico FSharp - similar to OCaml and ML
- Calico Jigsaw - a drag and drop block language
- Calico Spreadsheet - a simple spreadsheet viewer and editor
- Experimental Languages
- Calico Logo - s simple language which has much of the same beauty and power of Lisp
- Calico BrainScrew - a very simple language
- Calico Lua - a common language used for embedded systems, games, robotics, etc.
- Calico Dinah - drag and drop language
- Calico Sympl - similar to Lisp
- Calico CSharp - interpreted C# (no functions or classes)
- Calico Basic - Basic interpreter (uses Calico Modules, access to calico instance)
- Calico Java - Testing a Java Interpreter
- Calico Collaborate - Collaborative programming inside Calico
- Calico Console - cross-platform Unix-style or DOS-style console language
- Calico LC3 - assembly language, with tracing support and memory in a Calico Spreadsheet
- 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.