Skip to main content Skip to navigation

Making Construals and the MCE

'Making construals' is the principal theme of the Erasmus+ CONSTRUIT! project. The acronym 'MCE' stands for the "Environment for Making Construals".

The core language in the MCE is JS-Eden. This introduction complements a worksheet Getting Started with JS-Eden that was developed for use by schoolchildren.


STEP 1: To invoke the MCE, open a Firefox of Google Chrome browser, and click on the following url:

Your display will have three windows, labelled Script View, Canvas Picture and JSPE slides.

Make sure that these are arranged so that you can see all three clearly on your screen.

  • The Script View window is used for viewing and executing JS-Eden scripts.
  • The Canvas Picture is used as an interface for visualisation and manipulation.
  • The JSPE slides are used for presentation and documentation that can be closely integrated with JS-Eden scripts.

STEP 2: On the first JSPE slide, you will see a JS-Eden command:

import itag/solar/system;

and beneath it two underlined options 'submit' and 'copy to input'.

Press the submit option. This has the effect of executing the specified JS-Eden command. An animation will appear on the Canvas Picture.

itag/solar/system is the name of a JS-Eden script. It is made up of definitions of observables. These definitions are executed when we import the script.

STEP 3: To see some observables from the script, click on the New Window button at the top left of the MCE and select the 'Observable List' option from the drop down menu. It will bring up a new window, labelled 'Observable List', with an empty box labelled search at the top. Type 'earth' into the search box: a list of observables appears.

The observables whose names are shown in green have values defined by dependency: hover over the mouse over such an observable, and you will see its definition (framed using the keyword 'is'). The observable earth is a circle with centre at (earthX, earthY) for instance. Observables such as earthDistance, which are assigned an explicit value (using an '='), are shown in black.

STEP 4: You can also inspect the whole of the itag/solar/system script:

The Script View has a tab inside it which is labelled input. Press the copy to input option on the first JSPE slide, then click on the label of the 'input' tab in the Script View. This copies the JS-Eden command

import itag/solar/system;

from the JSPE slide into the input tab

Select the Inspect menu option, represented by a spyglass icon on the left at the bottom of the Script View window. It will turn red. Click on the name of the itag/solar/system script, which is also displayed in red. A new tab, labelled 'system', appears in the Script View. The content of this tab is the full source of the itag/solar/system script.


What you now have on the screen (taking into account the animation, the dynamically updating observables and the script of observable definitions) is 'a construal'. When we interact with it, we shall be thinking about what it is intended to refer to: "the solar system" as an independent external physical phenomenon ("its referent"). A construal exemplifies what Papert called 'an object-to-think-with'. We shall regard it as 'an object-to-converse-with': the JSPE slides provide an interface for talking about the construal and its referent.

The above introduction is a 'top-down' approach to understanding the solar system construal. Before continuing to the next section of the worksheet, it may be instructive to review the Getting Started with JS-Eden worksheet, which describes the construction of the solar system construal in a 'bottom-up' fashion.


Making construals is based on three fundamental concepts: observables, dependency and agency.

These are the primary concepts that make the connections needed to support conversation with and about construals. Each person who views a referent makes their own construal in these terms.

For the more open-ended activities below, you may wish to minimise windows to save screen space. You will also need to redefine observables. Consult the guidance on using the MCE in the right-hand column for instructions.

ACTIVITY 1: Explore the observables in the solar system construal

  1. inspect the definitions of the observables sun, earthDistance, mercury, mercuryX, originX, tick, picture and earthlabel in the itag/solar/system script.. For each observable, identify what they refer to, consider who the observer is, and in what context the observation is made. What role might they play in conversations about the construal and the solar system?
  2. Return to the JSPE Slides window and press the Next Slide button to move to Slide 2. Experiment by redefining the observables as explained on the slide. What can you learn about the significance of observables in this way?

ACTIVITY 2: Explore Dependency Map dependencies in the solar system construal

Click on the New Window button at the top left of the MCE and select the 'Dependency Map' option from the drop down menu. A Dependency Map window appears: enter the name 'mercury' into the search box at the top of the window, and you will see a directed graph whose edges show what the observable mercury (directly) depends on and what observables (directly) depend on it. To introduce an additional observable into the dependency map, tag a '|' symbol followed by its name onto the end of the search string (as in 'mercury|mercuryX' etc). Build up a complete picture of the dependency map for the observable 'mercury' in this way. Confirm that the dependencies are as you would have expected.

ACTIVITY 3: Explore agency in the solar system construal

An agent in the solar system is anything that can change its state. The most obvious example of an agent (and the only one that is internal to the construal) is the clock agent that advances the time. You can observe its effect by inspecting the value of 'tick' in an Observable List. The clock agent is specified at the head of the itag/solar/system script. As has already been illustrated, much of the interesting agency in interacting with a construal is what if? style interaction carried out by human agents, all of whom are 'makers' of various kinds.

A group of actions that manipulate the clock agent is displayed on Slide 3 of the JSPE presentation. Copy these to the input and experiment with them to see what each does. What happens if you simply press submit?

Slide 3 also includes a group of actions that can be used to manipulate the time directly. You can experiment with these in a similar way.

How would you use the above actions for manipulating the clock and time to decide how closely one tick in the construal approximates a day in the referent? How might you be able to verify directly that Earth and Mars are nearest to each other every two years or so?


Slide 4 of the JSPE presentation shows how the simple construal can be adapted to account for the observed ''recession" of the planets. Though it may initially seem 'obvious' that the construal 'represents' the solar system, in fact the main role of making a construal is to expose the limitations in any representation of a referent. There are innumerable features of the planetary system that are not reflected in the construal: elliptic orbits, moons, forces, magnetic fileds, three dimensional dispositions and rotations that accountfor days and seasons etc. The virtue of making construals is that it is possible to embellish the observational model so as to embrace other perspectives, The Mars construals, developed by Russell Boyatt, represent a step in this direction, supporting richer modes of visualisation and making use of actual data about locations. These construals feature in the Project List which can be aceessed from the drop down menu associated with the New Window button.

Useful tips on using the MCE

Saving screen space: If you need to make more space on the screen, you can (e.g.) minimise the JSPE Slides window in the standard way. Minimised windows will either be represented by icons at the foot of the MCE display, or hidden, according to what option has been selected in the Options menu at the top of the MCE. Hidden windows can be recovered by clicking on their names in the drop down list associated with the adjacent Existing Windows option.

Changing the font size: You can control the font size within the tabs in the Script View by using Alt-+, Alt-- and Alt-0, and control the zoom factor on the entire display using Ctrl-+, Ctr-- and Ctrl-0. The font size in the JSPE slides can also be controlled using the buttons at the top of the JSPE slides window.

Editing and live editing: Observables can be redefined by editing their definitions, hovering in the gutter to the left of the observable name and clicking on the triangular 'enter' symbol that appears. Clicking in the gutter updates values in a discrete way. You can also 'live edit' the definition of an observable so that its value changes as soon as a valid edit has been made. For this purpose, first hover the mouse in the gutter until a red 'star' symbol appears. The value of the observable will then be updated whenever that definition is changed.

The Project Manager: Scripts can be accessed by interacting directly with the Project Manager. They can also be stored for private or public use with a Google or Twitter login. For more details, consult this link.