PyAngelo Versions

Version 2.0

The defaut value for the yAxisMode parameter for the setCanvasSize() function was changed from JAVASCRIPT to CARTESIAN. The effect of this is that the bottom left corner of the canvas will by default be located at (0, 0).

2.0 Breaking Changes

CARTESIAN is now the default value for the yAxisMode parameter of the setCanvasSize() function

If you had previously called the setCanvasSize() function without specifying the yAxisMode parameter you will need to update your program for it to work as previously programmed.

setCanvasSize(640, 360)

To maintain the old functionality you need to update the code to:

setCanvasSize(640, 360, JAVASCRIPT)

Version 1.1

1.1 Major Changes

PyAngelo debugger added.

The debugger allows you to

  • step into - executes the current line of code written in PyAngelo. It will switch to another file if needed and will dive into functions.
  • step over - this will treat functions as a single line of code and move over them in a single step.
  • slow motion - this will execute a line of code every 1 second
  • continue - the program will run until the next breakpoint
  • breakpoints can be created and removed by clicking in the gutter of the editor
  • The scope, value, and type of each variable will be displayed ina table

Editor Updated

  • split windows - the code and console output are now displayed in a split window. You can toggle whether this should be displayed vertically or horizontally.
  • syntax error detection - the editor now checks for syntax errors in real time and displays a cross in the gutter of the editor if an error is detected. By holding your mouse over the cross you can see the error message.
  • improved error messages - if your program contains a run-time error, this will be displayed in the console and the offending line of code will be displayed in the editor.
  • image and sound preview - you can now preview images and sounds you have uploaded by clicking on the relevant tab.
  • saving - The start and stop button will still save files and should be used. However, if a change is made and it has been more than 10 seconds since the last time the file was changed, it will be saved again. This means that after a change there will be at most 10 seconds of unsaved work. If the editor cannot save your file for any reason, an error notification will be displayed for 3 seconds.

Create Classes to Track Students Progress

  • A class can now be created
  • A unique link will be generated which students can use to join the class
  • The owner of the class will be able to view all of their students' sketches
  • Students can see which classes they belong to

Create Collections for your Sketches

  • A collection can be created as a way of organising your sketches.
  • Each sketch can belong to a single collection.
  • You can view all the sketches belonging to a collection.
  • You can also still view all sketches.
  • If you are looking at a collection and create a new sketch from that page, the new sketch will automatically be put into that collection.

1.1 Minor Changes

Version 1.0

PyAngelo was updated to use Skulpt which is an entirely in-browser implementation of Python.

1.0 Breaking Changes

@loop_animation removed

This command was used to create a game loop. Any code underneath the @loop_animation would have been repeated forever. Any programs using this command need to be updated by changing the @loop_animation to a forever loop. Here is an example:

setCanvasSize(640, 360)
fill(255, 255, 0)
background(0, 0, 0)
circle(mouseX, mouseY, 15)

should be changed to:

setCanvasSize(640, 360)
fill(255, 255, 0)
    background(0, 0, 0)
    circle(mouseX, mouseY, 15)

Sprites have been moved to their own library

If you were using Sprite, TextSprite, RectangleSprite, CircleSprite, or EllipseSprite, these are now in their own library and hence to make your program work again you need to include the following import statement at the top of your program.

from sprite import *

1.0 Major Changes

goto and label

  • The "label" keyword is used to create a label
  • the "goto" keyword is used to specify which label to jump to


  • forever keyword added to PyAngelo
  • This is equivalent to using "while True:"

1.0 Minor Changes

  • Playground added where user's can code without an account
  • Sketches can be soft deleted. They will appear as deleted sketches below all other sketches.
  • Files within a sketch can be deleted

Version 0.1

The first ever version of PyAngelo. This version of PyAngelo used Brython to execute the Python code.