Skip to main content

Desktop CMU Graphics logo

Desktop CMU Graphics is an offline version of CMU Graphics, a persistent-object graphics package geared towards beginner computer science students. CMU Graphics and its desktop version are maintained by CMU CS Academy, a Carnegie Mellon University project which develops free-to-use middle and high school computer science curriculum.

Desktop CMU Graphics works with Python 3.6-3.11 and is compatible with Replit and Coding Rooms (see the "Replit" and "Coding Rooms" sections below). This package, including its documentation, is licensed under the BSD 3-Clause license.

Installation

Choose zip or pip

There are two different ways to install Desktop CMU Graphics on a device:

  1. (Mac and Windows only) Use the zip file installer that is available for download on the CMU CS Academy website.
  2. (Mac, Windows, and Linux) Use pip, Python’s built-in package-managing software.

Both methods come with their own advantages and limitations. If you're in doubt about which to choose, the zip file installer is the most likely to succeed. It should work regardless of most restrictions in place on school-distributed devices.

For those using devices with Linux operating systems, or for those who are familiar with the command line/terminal, the pip version of the package offers a larger degree of versatility.

The remainder of these installation instructions are only for the pip version.

Install dependencies

If you're using Windows, you don't need to install any dependencies. Skip ahead to "Install CMU Graphics" below.

If you're using a Mac, install Homebrew.

If you're using a Mac or Linux, install the software packages needed by pycairo. Read their getting started page for instructions.

Install CMU Graphics

Run the following command:

pip install cmu-graphics

Getting Started

To run our graphics framework, include the following line at the top of your Python file:

from cmu_graphics import *

At the end of your Python file, add this line:

cmu_graphics.run()

From there, the syntax for using the graphics package is identical to the online version of the framework. You can find more details about how to use the graphics framework here on our documentation page.

Teacher Support and Documentation

If you are a teacher with a CMU CS Academy Account and you have questions about CMU Graphics, remember that you can reach out to us through the Support tab on the left side of the CMU CS Academy website:

Highlighted teacher support tab

If you are an educator but do not have an account with CMU CS Academy, you can register for an account here.

If you are a student, or you are exploring Desktop CMU Graphics, there are plenty of resources to help you get started with the framework. Students can reach out to their teachers for questions about CMU Graphics, and a full reference documentation for the graphics framework is available on our documentation page.

Replit

Desktop CMU Graphics is compatible with Replit. To use the package on the Replit website:

  1. Create a new repl. Choose "Python-CMUGraphics" as the language.
  2. Run your code!

Coding Rooms

Desktop CMU Graphics is compatible with Coding Rooms. To use the package on the Coding Rooms website:

  1. Visit this link to create a workspace
  2. Click "Start Coding Python for Free Now"
  3. Click the blue "View Desktop" button above the shell
  4. Run your code!

Metadata

Release files for cmu-graphics 1.1.27

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cmu-graphics 1.1.27
File Size Uploaded
cmu-graphics-1.1.27.tar.gz 67.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cmu-graphics 1.1.27
File Interpreter ABI Platform
cmu_graphics-1.1.27-py3-none-any.whl Python 3 none any Details

Total release size: 136.2 kB

Release files / cmu-graphics-1.1.27.tar.gz

Download URL cmu-graphics-1.1.27.tar.gz
Size 67.0 kB
Tags Source
SHA-256 checksum
How to use checksums
90dde97761d41c9d04b83977caecc7a79a2c59693d5a74c99a6c16ef5673b7b5
BLAKE2b-256 checksum
How to use checksums
0cbbfc0ef4c4d69896b7b0276798f09e440314029d42cc817382bfbfc9be7e49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release files / cmu_graphics-1.1.27-py3-none-any.whl

Download URL cmu_graphics-1.1.27-py3-none-any.whl
Size 69.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e974925f7dabeac6ae733725af3272c31c77deae9f93d3b9d92e514f41d248da
BLAKE2b-256 checksum
How to use checksums
69bc3435451e9e7d944bcd6b7a495018d5327b09282ca69467a9837826b67ee1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release history Release notifications | RSS feed

2.0.5

2 release files

2.0.3

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.47

2 release files

1.1.46

2 release files

1.1.45

2 release files

1.1.44

2 release files

1.1.43

2 release files

1.1.41

2 release files

1.1.40

2 release files

1.1.37

2 release files

1.1.36

2 release files

1.1.35

2 release files

1.1.34

2 release files

1.1.33

2 release files

1.1.32

2 release files

1.1.31

2 release files

1.1.30

2 release files

1.1.29

2 release files

1.1.28

2 release files

This release

1.1.27 This release

2 release files

1.1.26

2 release files

1.1.25

2 release files

1.1.24

2 release files

1.1.23

2 release files

1.1.22

2 release files

1.1.20

2 release files

1.1.19

2 release files

1.1.18

2 release files

1.1.17

2 release files

1.1.15

2 release files

1.1.13

2 release files

1.1.12

2 release files

1.1.9

2 release files

1.1.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page