Heavy M
Heavy M
11
Version 5.1 - 04/19/2019
Legal notices
For legal notices, please visit https://heavym.net/en/legal.
The information in this document is subject to change without notice and does not represent a commitment on the part of
Digital Essence SAS. The software described herein is subject to a License Agreement and may not be copied to any other media
except as specifically allowed in the License Agreement. No part of this publication may be copied, reproduced or otherwise
transmitted or recorded, for any purpose, without prior written permission by Digital Essence SAS.
©2019 HeavyM and its licensors. All specifications subject to change without notice. HeavyM is a trademark of Digital Essence
SAS. All other commercial symbols are protected trademarks and trade names of their respective holders. All rights reserved.
1 Introduction 8
Resources 8
Contacting the support 8
About the HeavyM user manual 8
Symbols and conventions in the manual 9
2 Getting started 10
Required configuration 10
Installing HeavyM on your computer 10
Downloading the software 10
Installing the software 11
Managing your license 14
Releasing your license from the software 14
Releasing your license online 14
Setting up the projection 15
Positioning your video projector 15
Computer settings 15
Launching the projection in HeavyM 17
Starting a new project 17
3 The interface 19
Overview 19
1. The menu bar 20
2. The work area 20
3. The view toolbar 20
4. The toolbar 21
5. The layer list 22
6. The properties panels 23
7. The sequencer 25
8. The tempo module 26
9. The audio analysis module 26
Navigating the interface 27
Display on High-DPI screens on Windows 28
4 Creating shapes 30
Faces 30
Adding faces 30
Selecting faces 33
Arranging faces 34
Moving faces 34
Resizing faces 35
Editing faces 36
Players 38
Adding players 38
Selecting players 39
Arranging players 39
Moving players 39
Resizing players 39
Editing players 39
6 Adding effects 53
Grouping faces 53
What are groups for? 53
Creating groups 54
Moving faces to a group 54
Selecting a group and making it active 55
Arranging groups 55
Operating the effects panel 56
Overview 56
Activating an effect 57
The effects library 59
Outline 59
Filling 60
Transformation 63
Post Shaders 64
Transitions 65
Managing the settings 66
Interface control elements 66
Settings 68
Other options 70
Group effects options 70
7 Managing players and their content 71
Overview 71
Managing the content of a player 72
Photos, Videos and GIFs 72
Webcam 74
Syphon/Spout** 75
Shaders 77
Text 86
Display settings 88
Unclipped in the background 88
Clipped to all faces 88
Clipped to a single group 89
Cheat sheet 90
Using the warping module** 91
Players playback options 94
Commands 94
Triggering videos with sequences 95
13 Controls 142
Keyboard shortcuts 142
General commands 142
Selection commands 143
Drawing shapes 143
Moving & resizing shapes 143
Creative tools 144
Work area view 144
Projection 144
Custom keyboard controls 145
Overview of the keyboard controls window 145
Managing assignments 145
MIDI Controls** 147
Overview of the MIDI controls window 147
Selecting a controller 148
Managing assignments 148
Parameters 149
Using a virtual port to control HeavyM with VDMX via MIDI 151
OSC** 155
Finding a layout for a smartphone app 155
Setting up TouchOSC with HeavyM 156
16 Troubleshooting 171
8
Introduction
Welcome to the HeavyM User Manual. This document is intended to help you perform tasks within the
software and discover all the possibilities of HeavyM.
Resources
This manual is one of the many sources of information for HeavyM users. You’ll find other resources online
at heavym.net, with video tutorials, tips from the team, FAQs, or additional downloadable content.
If you haven’t already, don’t forget to check out our community pages: the forum and our Facebook groups
for French and English-speaking users.
Don’t hesitate to use the forum if you have issues with the software, you’ll get help from our technical team
and the community. Your post might also help other users!
Feel free to give us feedback on the software, the team is always open to your suggestions!
Note: if you want to post something in the forum (new topic or comment), you need to be signed up with a
username and a password. Otherwise, you can browse it freely.
● This document covers all features in HeavyM Live. If you are a HeavyM Start user, some of the
chapters will detail features you don't have access to.
● This manual provides instructions for the version of HeavyM stated at the bottom of the cover page.
It might not be suitable if you are using other releases of the software.
● The instructions cover both the Mac OS and Windows versions of the software, unless explicitly
stated otherwise.
You can find the latest update of this manual as well as other versions corresponding to different HeavyM
software updates on our Resources page.
Introduction Resources
9
● Yellow semi-bold text indicates a link to an online resource. It encourages you to consult a specific
webpage if you want additional information on a subject.
● [Gray semibold text between brackets] indicates keyboard keys or a combination of keys. Keys
that vary between Mac and Windows keyboards are indicated as follows: [Windows key/Mac key].
For example: [CTRL/Cmd + S] means “hold CTRL (Windows) or Cmd (Mac) and press the S key”.
● → between two gray semibold labels refers to a menu and its subsections. For example:
Projection → Performance means that you should refer to the Performance submenu in the
Projection menu. It will always be clearly stated if this menu is located in HeavyM, or in a different
software, or if it is in your computer’s settings.
● ** after a title indicates the following instructions apply for a feature that is only available in
HeavyM Live (not HeavyM Start).
Getting started
This chapter contains step-by-step instructions on how to set up HeavyM and your first projection, as well as
some tips on how to choose appropriate hardware for your mapping.
Required configuration
HeavyM is compatible with both Mac OS X and Windows. In order to make it work properly on your
computer, the following configuration is required:
Operating system
Windows 7 / 8 / 10
Mac OS X 10.10 / 10.11 / 10.12 / 10.13 / 10.14
Hardware
Minimum: Intel Core i3 / 4GB RAM / 1GB dedicated graphics card / 500Mo available disk space
Recommended: Intel Core i5 / 8GB RAM / 2GB dedicated graphics card / 500Mo available disk space
Your graphics card must be compatible with OpenGL 2.1 (or later). You will find this information on the
reseller’s website, though all recent graphics cards are compatible. We also don’t recommend using Intel HD
graphics cards.
In any case, if you’re unsure about the capacity of your hardware, the best solution is to try the software
first. That’s why when you first download HeavyM, you get a 30-day trial period with all the features from
the full edition (Live), only limited by a watermark. It is the perfect way to discover all the possibilities and
try out your hardware before buying!
Note: an internet connection is needed the first time you open the software and to register a license.
Note: you don’t need to create an account to get HeavyM, accounts are only necessary to post topics or
comments in the forum.
• Choosing an edition
HeavyM comes in different editions, so you have to choose which type of license to buy. For each edition,
there are also different subscription plans, so check out our pricing page to discover all the features and
services and find the one that suits you best!
To help you make your choice and test HeavyM before buying a license, you are offered a 30-day trial of
HeavyM Live. In this Trial mode, you’ll get a watermark on the output, but all the features of HeavyM Live
are unlocked, so you can discover them and test the full potential of the software. So, don’t hesitate to
download the software even if you don’t have a paid license yet!
• Downloading HeavyM
If you have already bought a license, you can download HeavyM from your license manager directly. You
will also find all the information related to your license in this space and your license key is required to
access it.
But, as mentioned above, you don’t need to buy a paid license to try out HeavyM, you can get it for free and
use it in Trial mode for 30 days from the first time you open it. To try the latest version, follow this link.
You’ll only need to provide us with an email address so that we can send you the download link. (Don’t
worry, we'll never share it!)
Note: there’s only one installation file for all HeavyM editions. So both methods will actually get you to the
same download.
2. A dialog box will appear, just follow the instructions in order to install the software.
If you have trouble installing the software, it might be because your antivirus is blocking it. If you can’t
bypass the prohibition, try deactivating your protection while you install HeavyM.
But don’t worry, it’s not because HeavyM is unsafe! This can happen because some antivirus block programs
that are unknown in their database. Once a software has been opened and declared as safe by a sufficient
number of people, antivirus won’t forbid it anymore. Consequently, this will happen if a new version of
HeavyM is released and you’re one of the first users to install it.
Note: if your antivirus is Windows Defender, you can bypass the block by clicking on More info → Run
anyway when the “Windows protected your PC” appears.
Note: on Windows, if nothing happens when you try to open HeavyM, try to launch it as admin by
right-clicking on the icon or start menu item and selecting “Run as administrator”. Know that you
might need to do this regularly.
• You can start the Trial mode (with the watermark) if there are days left in the countdown. To do
so, simply click on “Continue Trial“. You’ll still be able to register later!
• Or you can register a license. If you wish to do so, simply copy and paste the license key that was
sent to you by email when you purchased it, then click on “Register”.
You’ll need an internet connection at this step. This process will link the license to the computer and
thus use one seat. There’s a specific number of seats associated with your license. You can consult
the list of linked devices and see how many seats you have on your license manager.
Note: if you bought HeavyM when there was a login system, please use the “Lost key?” button to
get your key. It will send you to the license key recovery process on our website. (It also works if you
just can’t find your key!)
3. You should be good to go! Depending on your choice, the corresponding edition of HeavyM will
launch.
Note: if you encounter a problem at this step, try checking your license information online or
contact us.
Note: if you wish to switch to another license on this computer later, please first unlink the current one from
the software (Help → Unlink your License), then restart HeavyM.
• Updates
You don’t need to release your license before installing a HeavyM update on the same computer.
From version 1.5.2, updates are checked automatically and you can download them directly from the
software. If a new version is available, you’ll be notified of the release notes when you open HeavyM.
This window will appear, prompting you to decide if you want to install the new version now, be reminded
the next time you open HeavyM, or skip this version.
If you select “Install update”, the setup file for the latest version will be downloaded and you’ll be able to
start the installation process.
On the other hand, if you select “Skip this version”, you can still change your choice later by going to Help →
Check for Updates in the software. You can also download the latest version from your license manager.
Note: for the moment, if you want to download an older version of HeavyM, you can contact us.
HeavyM licenses are allocated a specific number of seats. This number represents the maximum
number of computers to which you can link the license at the same time. You can consult the list of
linked devices and check how many seats you have on your license manager.
You can release a license from a computer and link it to another as you wish, following the process
described in this section.
The release of a license from a computer is called an "unlink". You must perform this procedure before:
If you simply want to update HeavyM, you do not need to release your license. If you have problems
updating, please contact the support.
There are two methods to unlink your computer: directly from the software or by contacting us. Note that
for the moment, emergency online unlinks are not available.
First, make sure you are connected to the internet, then run HeavyM. In the software, you must click on
Help → Unlink your License (or Tools → Unlink in HeavyM 1.2 and 1.3). If you have an older version, please
contact us.
A dialog window will then ask you to confirm the unlink by pressing OK. If the unlink procedure has worked,
a confirmation message will appear. If not, be sure to check the status of your internet connection.
If you refresh your license manager on the HeavyM website, you should no longer see your computer in the
list of allowed machines. Your HeavyM license is now ready to be reinstalled on another computer!
If you wish to unlink your license from its devices because you can’t access them, please send us a message
with your HeavyM username or license key so that we can perform the procedure manually.
In order to get the best rendering of your mapping, there are a few settings to adjust on your projector and
in HeavyM.
Plan the location of your computer and projector ahead. You might need to lift them. Don’t forget people
might walk around your installation so secure all cables.
Make sure your structure and your projector DO NOT move once you’ve started creating your mapping.
To learn more about how to choose the best projector for your project and how to set it up properly, you
can consult our HeavyM Tips.
Computer settings
• Display settings
Once you have connected your computer to your projector, you need to set up your display settings as
“Extended” and not “Mirrored” or “Duplicated”, so that you can work on HeavyM on your computer and see
your mapping in the projection.
Mac OS
If you are a Mac user, you need to go to System preferences → Displays → Arrangement and untick
“Mirror Displays” at the bottom of the window.
Windows
If you are a Windows user, you need to right-click on an empty area on your desktop screen and select
“Display settings”. Scroll down to the “Multiple screens” category, select “Extend these displays” in the
drop-down menu and confirm your choice.
Note: you can also quickly switch between display modes using the shortcut [Windows + P].
• Power settings
Plan your computer’s power settings and set up its sleep mode parameters to make sure your mapping
doesn’t stop if your computer goes into energy saving mode.
• Desktop background
Anticipate and pay attention to the background picture. If a window closes, it is better to have a plain black
background picture, both to preserve your audience’s eyes and to avoid showing everyone a family picture!
Note: the numbering of the screens in HeavyM follows the order defined by your OS, i.e. “Desk” is the
display considered as the primary one by Windows or Mac. You can change the arrangement of your
displays in System preferences → Displays → Arrangement (for Mac OS) or Settings → System → Display,
under “Multiple displays” (in Windows).
You also have the option to open a windowed projection to preview your work on your computer in
Projection → Windowed. Lastly, you can use the “Custom…” option to set specific settings for a project.
For further explanation on how to adjust your projection or multi-projection and its parameters, please refer
to the ”Projection” section of this manual.
When you open HeavyM, you are greeted by the following welcome window:
This window will appear every time you open the software (not from a project), unless you untick “Show at
startup”. It is also accessible from Help → Welcome Window.
As you can see, it gives you access to a lot of resources about the software, like quick tips, the release article
or learning material. There are also all the different options to start a project.
Note: these options are all available from the File menu too.
When you create a new project, you should save your mapping right away and then remember to save it
regularly to be sure not to lose some data if there’s an issue. Go to File → Save or use [CTRL/Cmd + S].
Note: there can only be one open project window at a time, so when you select File → New Project, the new
window will replace the currently active one.
Note: saving an example will create a new file so there’s no overwriting and the original examples are intact.
Now, don’t forget to set up your projection and launch an output window as described in this chapter and
have fun mapping!
In the next chapters, you’ll learn how to operate the software and create your mapping. However, if you
want more tips on how to optimize your computer’s configuration to be sure to get the best out of HeavyM
before starting your project, you can make a quick jump to the last chapter of this manual first, “Optimizing
your computer for better performances”.
The interface
HeavyM was designed to be accessible to all, so its interface is stripped-down and user-friendly. This chapter
will give you a quick overview of all its parts and basic navigation.
Overview
The different parts of the interface are easily recognizable thanks to color codes and spatial organization.
The interface was categorized so that each part follows a specific step in your creation workflow.
The menu bar is situated at the top of your screen, below the title bar. It contains drop-down menus
organized in categories, where you’ll find the majority of the software’s essential functions, such as opening
and saving projects or editing tools for example.
For a detailed description of all the options, please refer to the ”HeavyM menus” section.
This central space is the artboard on which you will create your mapping. The darker rectangle in the center
corresponds to the projection zone (which means that anything that is outside of it won't be displayed by
your projector).
The shapes displayed in your work area are the ones in the currently active sequence (the one that has a
yellow title bar). Depending on the sequencer modes you have defined, the shapes can either vary between
sequences or always be the same throughout the whole project.
4. The toolbar
a. Control settings
These buttons will let you access windows to set up your projection (or multi-projection**) and keyboard
or MIDI controls**.
b. Predefined shapes
In order to create your mapping, you'll have to create shapes that will contain all your effects and media.
There are some already predefined shapes that you simply have to drag and drop to your work area to help
you with that task.
Here in the toolbar, the four first shapes are called faces, they are geometric shapes that can contain
HeavyM effects. The last one is a player and it can contain a media.
c. Creative tools
In blue, you will find tools that will help you with the drawing of your mapping. They will allow you to draw,
modify and adapt your mapping more easily during the whole creation process.
Note: there are other creative tools in HeavyM that are not accessible from the toolbar, but from a menu or
a shortcut. Find out more about all these different tools in “Using the creative tools”.
In your mapping, you'll be able to regroup shapes together. This will allow you to display different effects in
the faces of your mapping. Indeed, all the faces in a specific group contain the same effects.
In the following chapters, you’ll learn that faces are always contained in groups, but players, depending on
their display settings, can be in or out of any group.
The panel on the left of the interface lets you manage groups, shapes and the hierarchy of all these layers in
the selected sequence. This panel is always displayed and every time you add a new shape, you’ll see it
appear in the list. Depending on the sequencer modes you have set, its content can vary between
sequences.
Its operation will be detailed throughout this manual, but let’s have a quick overview of the features it
contains here. Many options in this panel will facilitate your workflow:
First, know that the order of the layers in the list impacts the rendering order in the output, i.e. if a
group is above another in the list, it will be rendered in front of it in the output. You can change the
arrangement of groups and objects in the list with drag & drop movements, among other methods
that will be further discussed later.
Note: the Masks group that you see at the top cannot be moved, it always stays on top of the pile.
Secondly, here are some quick access options that you’ll find in the panel:
7. Group color: indicates the color that the shapes of this group bear in the work area. Clicking on it will
reveal a 30-color palette that you can choose from to change the group’s color.
8. Group name: double-click on it to rename the group. This is also valid for shapes.
10. Display mode selector: allows you to choose between 3 display modes for a player.
Note: some of the options detailed above are also accessible from right-click context menus in the work
area.
If one of the icons is pushed, the panel stays open. Depending on the type of item that is selected in the
work area, it will switch to the corresponding properties section (i.e. if you select a face, it will display an
effect panel and if you select a player it will switch to the player settings panel.)
The red and purple icons on the right represent the different categories of effects you can find in HeavyM.
There are two main types of effects: Group effects (red icons) and Output effects (purple icons).
Their respective panels will allow you to activate effects and adjust all their parameters.
The Outline, Filling, Transformation and Transitions categories contain 2 or 3 different types of effects,
organized in tabs. Above each tab, you’ll find a switch to activate the corresponding effect and all its
parameters listed below.
The Post Shaders panel is organized a bit differently. By clicking on the yellow plus sign, you’ll unfold the list
of available post shaders. When you select one, it will be added to the panel and you’ll be able to manage its
settings. There are 16 post shaders available. You can use as many of those shaders as you want at the
same time and their order in the panel will influence the visual result.
Group effects
Outline, Filling and Transformation are group effects. It means that they apply to all the faces in a specific
group. You can see which group is active with the label in the title bar.
Output effects
Transitions and Post-Shaders are output effects. It means that they affect the whole output of the selected
sequence, even players, and not only a specific group of faces.
For more information on how to add and manage your visual effects, see ”Adding effects”.
The last section is dedicated to players. It displays the state of the players you select and lets you manage
their parameters and playing options. When you add a new player, it will automatically open up.
The features and options of this panel will be detailed in the “Managing players and their content”.
7. The sequencer
In HeavyM, it’s possible to divide your project in sequences (up to 100). In each sequence, you are able to
add different effects, medias or even shapes. Each sequence can have its own duration and you can set the
order in which they are played.
When you select a sequence, it becomes yellow and its content is displayed in your work area.
You can minimize the sequencer by clicking on the button at the top. Note that it will also put away the
tempo and audio analysis modules.
All the aspects of the sequencer and sequences are detailed in the corresponding section.
This module lets you manage the tempo of your project in Beats Per Minute (BPM). You’ll see that you’ll be
able to use this tempo throughout your whole project for different purposes, like the speed of an effect or
duration settings for example. You can choose to show/hide the Ableton Link toggle in the Options menu.
The tempo module is folded when you minimize the sequencer. When the sequencer is maximized, you can
also hide the module by clicking on the button at the top-left.
Find out how to make your effects react to the tempo in “Making your mapping tempo or sound-reactive”.
In HeavyM, you can make your effects sound-reactive, to adapt your mapping to the atmosphere. The audio
analysis module contains the options that will help you select an audio source, adjust the gains and define
frequency ranges to make your effects react to.
You can turn the module on with the switch in its header bar. Click on the gear icon to access the settings.
The audio analysis module is folded when you minimize the sequencer. When the sequencer is maximized,
you can also hide the module by clicking on the button at the top-left.
Find out how to manage audio settings and make your effects sound-reactive in “Making your mapping
tempo or sound-reactive”.
You can also press [Space], left-click to grab the artboard, and move your mouse at the same time.
• Zooming
You can zoom in on your work area until 319% and you can also zoom out to 80%. There are a few ways to
do so.
With your mouse, you can scroll your mouse wheel or simply click on the buttons of the view bar. The view
bar also contains a button to reset the zoom to 100% and re-centers the projection area in the workspace.
With the keyboard, you can hold [CTRL/Cmd] and hit [+] to zoom in or [-] to zoom out.
• Scrolling
Depending on the size of your screen, you might not see the full content of some panels at once sometimes.
This might happen in the Layers panel, the Players panel, the Effects panel or the sequencer.
In that case, you’ll see a scroll bar (horizontal or vertical). Just click to grab it, and drag it in order to show a
hidden part of your panel and access its options.
Note: there are no floating panels in HeavyM and you can’t resize the different areas and windows.
For example, there can be incorrectly-sized or blurry graphical elements, some truncated text, or on the
opposite, you might find that the elements in the interface are too small for a comfortable use.
To fix this, here are a few workarounds you can try, but be aware that some of these settings may have
adverse side effects for your display (although don’t worry, everything is reversible).
Note: this only concerns the display of the interface of the software, if you have issues with the display of
the output, please refer to the “Projection” chapter.
2. In the “Compatibility” tab, check "Disable display scaling on high DPI settings”.
Note: you might have instead "Override high DPI scaling behavior / Scaling performed by: ”. If so,
check this and choose “Application” in the drop-down menu.
3. Re-launch HeavyM. The graphical elements in the application should appear clearer now.
To do so, you first need to revert any changes you might have made in the compatibility settings (see
previous point), because the scaling of the app needs to be done by Windows for this method to work (i.e.
“Scaling performed by: System”).
Then, you can change the percentage for the size of elements directly in your Windows settings. Go to
Settings → Display and "Change the size of text, apps, and other items."
You will see some modifications appear directly, but you might need to sign out and sign in again on your
Windows session so that all changes are applied. Try to upgrade or downgrade the size until the overall
appearance satisfies you.
Creating shapes
Shapes are the elements that make up your mapping, they contain all the content displayed in your
projection. There are two types of shapes in HeavyM: faces, which contain visual effects from the HeavyM
library and players, which contain sources, like videos, text or other feeds.
Note: you can add up to 300 shapes (faces and players combined) in a sequence. You can refer to the view
toolbar to know how many shapes there already are in a sequence.
Every time you add an object in your work area, you’ll see it appear in the Layer list on the left. As you can
see below, faces and players both have a specific symbol to better differentiate them in the list.
This panel contains many options that will help you manage and arrange all your shapes. Some of them are
accessible from both the work area and this panel. They are detailed throughout this manual and you can
find a detailed overview of the elements in this panel in the chapter related to the interface.
The current chapter will teach you how to create shapes and the outline of your mapping.
Faces
Faces are the geometric shapes that you use to draw the outline of your mapping and where you’ll put visual
effects later.
There are some predefined faces or you can draw point-to-point polygons.
Adding faces
• Adding basic predefined faces
Basic predefined faces are located in the upper toolbar. There are four types: Square, Triangle, Curve and
Ellipse.
1. Left-click on the type of face you want and hold down your mouse button.
2. Drag it to your work area, then release your click to drop it. You should see it appear with yellow
borders and round-shaped points.
Note: you can also right-click anywhere on your work area and select the desired shape in the context
menu. The center of the face will be placed where your pointer is located.
1. To access these faces, make sure you don’t already have any shape selected and right-click
anywhere on your work area.
2. In the context menu that pops up, hover over “Add shape”.
3. You can see the basic faces as well as one extra type: Polygon.
Hover over this item, and choose a number of sides (5 to 10) from the list.
Once you select a number, the corresponding polygonal face is created on your work area, with its
center placed at the location of your pointer.
Regular polygons with 5 to 10 sides that you can create with the right-click menu
Note: the newly created polygons are regular (equilateral and equiangular).
1. First, activate the draw mode by clicking on the corresponding icon in the toolbar.
Note: you can also use the shortcut [CTRL/Cmd + F] or the Tools menu.
2. Once this mode is activated, you can create your own polygon by left-clicking over your work area
to create the vertices. Every time you left-click, you will see a new point on your polygon.
Your polygon will appear with white borders and slightly transparent white filling. The darker part
represent the area that will be added to your current polygon if you create a new point.
3. Once you are satisfied with your polygon, just click on its first vertex, represented by the green dot
(it will turn blue when you hover over it).
This will validate the creation of your face. This method of validation will leave the Draw mode on,
so you can start a new shape right after.
4. If you want to put an end to your drawing session, right-click anywhere on the screen, hit [Escape],
or deselect the Draw mode by clicking on the Draw button again. If you were creating a shape at
the time, it will be closed and saved.
Note: the Draw mode will also allow you to edit faces.
Selecting faces
There are visual cues that let you know when a face or faces are selected: when you click on a face, it will be
selected and turn yellow in your work area and in the layers panel. When faces are not selected, they bear
the color of the group they are assigned to.
Note: the color of a group can be changed by clicking on its color symbol.
You can refer to the view toolbar to know how many shapes you have in your selection (the number next to
the yellow icon).
Note: if a shape is hidden, it can’t be selected (neither in the work area nor in the layers panel). If a whole
group is hidden, you can still click on it in the panel to make it active, but its shapes won’t be selected.
Note that a face needs to be completely covered by the rectangle in order to be selected entirely, or else it
will only grab some of its vertices.
You can also simply hold [CTRL/Cmd] and click on your faces one-by-one to select/deselect them (even if
you already have a lasso selection), or use [CTRL/Cmd + A] to select all the shapes (including players) in your
sequence at once.
The shortcut [CTRL/Cmd] + click also works to select multiple shapes directly from the Layers panel.
Those are pretty basic mouse movement and key combinations that you find in most applications. There’s a
last selection method in HeavyM: if you click on a group in the layers panel, all the shapes it contains
(including players) will be selected.
Note: sometimes, when similar shapes are placed exactly one above the other, you might not notice that
there are multiple ones in your selection. That’s when the elements of information in the view toolbar and
the layers panel will be helpful.
Arranging faces
We’ve mentioned in the previous paragraph that faces could overlap and that their order had an importance
in the work area. Indeed, faces are stored in groups and ordered in a layer pile, which also impacts the
rendering in the projection. You’ll learn more on these subjects in future chapters dedicated to groups and
the rendering order.
By default, when you create a face, it is added in the currently active group. If you want to order your faces,
you can drag & drop items directly in the layer list, or use the features in the options or right-click context
menus.
Specifically, you can use the items from the “Arrange” submenu to change the order of faces in a group:
“Move to Front” puts a face above all other faces in its group, whereas “Move Forward” ([CTRL + ↑]) just
sends it above the next face above in the group (and “Move to Back” and “Move Backward” ([CTRL + ↓]) will
do the opposite).
Moving faces
Faces can be moved when they are selected. You can use your mouse to drag your selection and drop it to a
new location, or the keyboard arrows to translate them precisely.
By holding [Shift] when you drag a selection, you’ll be able to constrain the movement in a vertical or
horizontal translation only. A grey line representing the axis on which you selection is shifted will appear.
Or course, you can also use the arrow keys to move selected faces (hold [Shift] at the same time for a bigger
increment.)
Note: when placing faces, the magnet mode will be extremely helpful to prevent unwanted blank spaces.
Resizing faces
1. Select the face(s) you want to scale.
• [Alt] + Drag: if you want to scale your selection uniformly (enlarge or shrink it while keeping its
aspect ratio). The scaling is done relatively to the center of your selection.
• [Alt + Shift] + Drag: if you want to resize your selection on one dimension (enlarge or shrink it
horizontally or vertically). The scaling is then done along the x or y axis (which will appear in light
grey during the operation).
3. While holding the shortcut, click on a face in your selection, hold your mouse button down and drag
your pointer until you reach the desired size, then release.
If you drag your pointer towards the middle of your selection, you will shrink it, whereas if you drag
your pointer away from the center, you will enlarge it.
Note: alternatively, still while holding [Alt], you can use the arrow keys to resize your selection precisely
(hold [Shift] at the same time for a bigger increment.)
To learn about more precise resizing options of the output and shapes, see “Projection settings”.
Editing faces
Note: you will notice that there is no difference between custom polygons and predefined shapes. Every dot
is independent and can be placed as you wish.
Then, the selection and shifting methods previously described for faces also apply to corners, so you can
adjust their positions. You can even move corners from different shapes at the same time.
Note: the magnet tool will also be useful there, it will allow you to snap points together. Then their positions
will be linked.
Note: ellipses work a bit differently because they always have 4 points. Also, their points are not totally
independent because they have an internal symmetry, so when you move one of their control points, the
opposite one will shift with it accordingly.
Note: you can add points to custom polygons, squares and triangles, but curves and ellipses are
unalterable.
2. Activate the draw mode by clicking on the corresponding icon in the toolbar.
Note: you can also use the shortcut [CTRL/Cmd + F] or the Tools menu.
3. You should now see white dots on the sides of your shapes.
These points are not yet created, but they will be if you click on them. When you click on one, it will
be added to your shape.
Note: when you click on a white dot to create a point, you can hold your mouse button down and
drag the point to place it directly. Once you release it, you’ll have to turn off the draw mode to be
able to move it again, because all shifting is disabled in this mode.
4. Once you have created some new points, you will see them turn yellow and new white dots will
appear again, so that you can keep adding points to your shapes.
5. Exit the draw mode by right-clicking anywhere on your work area or by using [CTRL/Cmd + F], the
toolbar icon or the Tools menu again. You’ll see that your shapes have been editing and will behave
like any other shape.
In the next chapter, you’ll learn more about the creative tools that can help you create and adjust
your mapping. If you want to know how to add visual effects to your faces, please refer to “Adding
effects”.
Players
Players are the areas where you can add a source or an external content. As of HeavyM 1.6, players can
support 5 categories of sources: Medias (photos, videos, GIFs), Webcam streams, Syphon/Spout streams,
Shaders, Text.
You can manage your players from the player settings panel, on the right of your interface.
Note: Remember that you can add up to 300 shapes (faces and players combined) in a sequence. While 300
players is technically possible, know that playing multiple videos at the same time will rapidly take a toll on
your computer’s performance.
Adding players
To insert a media in your mapping, you first have to add an area to contain it: a player. The player icon is
located in the upper toolbar, next to the predefined shapes.
It works like the predefined shapes, in order to add one to your work area:
2. Drag it to your work area, then release your click to drop it. You should see it appear with yellow
borders and square-shaped points.
Furthermore, the player settings panel will open up. We’ll talk more about this panel in the
dedicated section.
Note: you can also right-click anywhere on your work area and use the right-click context menu to
add a player. Its center will be placed where your pointer is located.
Note: in your work area, rectangular faces and players can look very similar. However, you can still see the
difference: faces have round-shaped control points whereas players have square-shaped control points.
Players also appear less bright in your work area, as you can see in the picture below.
Selecting players
The selection methods that were described for faces also apply to players (see selecting faces). But there is
one more method that is specific to players.
In the player settings panel, you’ll notice an icon in the title bar:
It’s a button that allows you to select all the players in your sequence, and only players (it doesn’t select all
the shapes like [CTRL/Cmd + A]).
Arranging players
Like faces, you can drag & drop players, or use the “Arrange” context menu (i.e. from a right-click) to change
their position in the layer list (see arranging faces).
But the behavior here is quite different, as the position of a player in the list is not the only parameter that
affects its rendering. Indeed, depending on its place in the list, if it’s in a group or not, a player will have a
different display mode. Please refer to the dedicated chapter to learn more about player display settings.
Moving players
The movement methods that were described for faces also apply to players (see moving faces).
Resizing players
The resize methods that were described for faces also apply to players (see resizing faces).
In a future section, we’ll describe how you can easily resize media players to preserve the aspect ratio of
their content.
Editing players
Player shapes are not as editable as faces, they always have exactly 4 vertices. You can adjust the positions
of these points and the methods to fine-tune points positions are the same as the one for shapes (see
“Adjusting points positions”).
However, while players will always technically stay rectangular shapes, you can also go further if you need to
distort the texture in your player, by using the warping module** (only in HeavyM Live). Warping is a
technique used to manipulate a texture in order to correct its distortion, whether it is to adjust its shape on
a complex surface or for creative purposes. Learn how to use it in “Using the warping module”.
In the next chapter, you’ll learn more about the creative tools that can help you create and adjust your
mapping. If you want to know how to import content in your players, please refer to “Managing players and
their content”.
As you already saw in the “Interface” section of this manual, some creative tools are accessible from the
toolbar located above the work area. When you want to activate one of these modes from the toolbar, click
on it and the mode will be turned on. To turn it off, just click on it once again when you are done using it.
Note: you can also access these modes in the Tools menu, where you’ll find other tools that will be
described in this chapter.
The rest of the creative tools are accessible either by shortcuts or by specific right-click menus.
It is accessible from the toolbar, the Tools menu, or with the shortcut [CTRL/Cmd + B].
The different aspects of the center mode are described in the following paragraphs, while the operation of a
custom center as a setting for visual effects is described in the “Adding effects” chapter.
By default, custom centers are placed in the middle of their associated faces (in the location of the center of
gravity). When a custom center has been moved to a new location, you can see a blue line linking it to its
associated face.
2. Then, click on the center icon in your face and drag it to its new desired location.
3. There’s no validation needed, simply release the center icon when you’re satisfied with its location
and it will be applied.
2. Then, click on the center icon of one of the faces in your selection and drag it to its new desired
location. You will notice that once you start dragging it, all the other custom centers of the faces in
your selection will snap to it.
This allows you to move all the custom centers of the faces in your selection at the same time and
thus define the exact same location for these custom centers.
3. There’s no validation needed, simply release the center icon when you’re satisfied with the location
and it will be applied.
Note: the custom centers are not permanently linked together, you can always go back and select a single
face to edit its custom center location.
As we’ve said before, all the modifications you’ve made have already been applied without further
validation.
This also works with a selection of faces: all the custom centers will be put back in their respective default
locations.
It is accessible from the toolbar, the Tools menu, or with the shortcut [CTRL/Cmd + F]. Its operation is
described in the “Adding faces” and “Editing faces” sections.
The cursor
When activated, the cursor tool allows you to see the pointer of your mouse on your projection, so that you
can know where it is without looking at your screen. That way, you can draw while looking directly at the
projection.
Previews of the projection (left) and the work area (right) when the cursor is displayed
• Cursor settings
You can alter the appearance of the cursor in Tools → Change Cursor Parameters.
In the first part of this window, you can change the color of the cursor. You’ll notice that you have access to
your saved colors from the color picker.
In the second part, you can adjust the thickness of the cursor with the value slider.
The grid
If you decide to prepare a mapping beforehand, without your real volume, you might notice it does not fit
your structure perfectly once you try to project on it. This can also happen if you’ve made some changes in
your stage setup, for example if you’ve moved your projector a bit.
To solve this problem, you can use the grid tool to fine-tune your preparation and make it fit precisely on
your real projection structure.
This mode is accessible from the toolbar, the Tools menu, or with the shortcut [CTRL/Cmd + G].
1. Once you have activated the tool, click on your work area and drag your mouse in order to draw a
rectangle around your whole mapping. You’ll see a grid appear.
2. Then, select and drag one of the grid’s corners to adjust the shape of your mapping to the real
structure on which you project.
3. Once you are satisfied with your adjustments, hit [Escape] or turn off the grid mode, this will save
your modifications.
Note: if you want to cancel the changes you made with the grid, you first have to validate them (see step 3.)
before hitting [CTRL/Cmd + Z] or Edit → Undo to erase them.
This mode is accessible from the toolbar, the Tools menu, or with the shortcut [CTRL/Cmd + M].
1. When the magnet mode is activated, you’ll see that when you drag a shape next to another one, a
blue area will appear if two vertices are close to each other.
2. While your selection is still active, you can still move points independently. Once you release your
mouse button though, these 2 points will be linked.
If you move one of these points now, the other one will move with it. On the other hand, the shapes
always stay independent, so if you move one whole shape, the other one won’t be affected and the
link between there vertices will be broken.
Note: this whole process also works when you only move one point (this applies to custom centers too) and
not the whole shape, or when you position a shape that you just dragged from the toolbar.
On the right, a real situation. On the left, a mapping reproduction of it, with the help of a background picture.
Note: the background image won’t appear in your projection, this is only for creation purposes. If you want
to add an image in your projection, you need to use a player.
• Background Settings
You probably want to use your own picture and not the default one (even if it’s really beautiful!). Here is the
procedure to select a picture from your computer files:
1. First, go to Options → Background Settings. A window with several parameters will appear.
2. In the right column, under the picture, click on “Choose file”. This will open a new dialog box, where
you’ll be able to browse your folders and select the desired picture from your computer.
Once you have selected a picture, you should see its filename next to the “Choose file” button and
a preview of it just above.
Note: you can use .JPEG (or .JPG), .PNG and .BMP files for this feature. Also, the transparency in
.PNG files is supported.
3. The preview in the settings window shows you how the picture will be displayed in your work area.
You can adjust its size and position in the left column of the window (and directly see the result in
the preview square). There are four options:
• Fit to width resolution: this will adjust the size of your picture
so that its width is the same as your projection area, all the
while keeping its aspect ratio. The picture will also be centered.
• Expand: this will adjust the size of your picture so that it fills
your projection area completely, regardless of its original aspect
ratio.
4. Click on “OK” to apply your changes, or “Cancel” to exit the window without saving them.
Note: while this option can help you in the creation process, there’s also another background feature in
HeavyM that can be useful during a performance: you can get a feedback of the projection in your work
area. See “Output as background”.
Locking layers
In order to avoid inadvertently altering or deleting some shapes (faces or players), you can lock them to
keep them in place in your work area. You can lock one shape or a group of several shapes at the same
time.
When a shape is unlocked, the button is just a tick box, but when it’s locked, it becomes a small lock and the
name of the shape is grayed out so you can easily see its state. In the work area you’ll see that it’ll also
appear less bright than unlocked shapes.
In the work area, shapes in the left column are unlocked and shapes in the right column are locked
You can also lock or unlock a shape from its right-click or options context menu, or with the shortcuts
[CTRL/Cmd + L] (to lock) and [CTRL/Cmd + U] (to unlock).
But you can also lock/unlock in bulk from the layers panel: you’ll notice there’s a lock button or option for
groups, and even for all layers in the sequence directly (at the top of the list).
This last feature is also accessible if you right-click with no selection in the work area, as well as with the
shortcuts [CTRL/Cmd + Shift + L] (to lock all) and [CTRL/Cmd + Shift + U] (to unlock all).
A locked shape simply cannot be moved or resized (except in the case of warping, or a mapping resize in the
projection parameters).
If this shape is repeated in all sequences, it will be locked there as well. See Sequencer modes.
Hiding layers
Hiding a shape can be useful if you want to reach an object that is below, or if you want to hide some
content in a sequence for example.
In HeavyM, when you hide a shape, it is hidden in both the work area and the projection, but still visible in
the layer list.
When a shape is displayed, the button is an eye, but when it’s hidden, it becomes a simple tick box and the
name of the shape is grayed out so you can easily see its state.
You can also hide or show a shape from its right-click or options context menu, or hide it with the shortcut
[CTRL/Cmd + H].
But you can also hide/show in bulk from the layers panel: you’ll notice there’s a hide button or option for
groups, and even for all layers in the sequence directly (at the top of the list).
The options to “Show all” is also accessible if you right-click with no selection in the work area, as well as with
the shortcut [CTRL/Cmd + Shift + H] (to show all).
If a shape is repeated in all sequences, its visibility state is always independent, i.e. it can be visible in one
sequence and hidden in others. See Sequencer modes.
Creating masks
Faces can be turned into masks, which will allow you to hide a particular part of the output. They work as
such: a mask is like a plain black shape that is above everything else.
They can also be seen as a way to reach the particular form of a shape you can’t make otherwise. For
example, you can’t create hollow shapes with the draw mode, but a mask can help you simulate one in
some cases.
1. Masks can be made from any type of face in your work area. Select one or a few at the same time.
2. You’ll notice that there is a special group named “Masks” in the Layer list. To turn a face into a
mask, you simply have to move it to this group.
To do so, you can drag & drop it, or use the button of the masks group. You’ll also find a “Use
as mask” option in right-click or options context menus.
Note: the Masks group is darker than other groups and can’t be moved backward, it’s always at the
top of the list. Indeed, masks are necessarily above all other objects. You also can’t change the
group’s color and name.
3. Once your faces are in this group you’ll see them turn black in your interface. You can still move,
edit, hide and lock them as if they were a normal faces. But now, when you put your mask above a
part of your other shapes, it will be hidden in your projection, regardless of the shape’s group
assignment.
4. When you want to turn a mask into a normal shape again, simply move it out of the Masks group,
or use the “Unmask” option from its right-click menu (with this last option, it will go back to its
previous group assignment.)
Note: if a face is repeated in all sequences, its mask state is the same in all of them. See Sequencer modes.
Performing rotations
This will allow you to rotate your shapes. The center used for the rotation is the default center (the center of
gravity) of the shape you rotate. If you rotate multiple shapes at the same time, the center used will be the
center of gravity of your selection of shapes. Similarly, you can also perform a rotation of a specific group of
points.
There are two ways to perform a rotation in HeavyM. You can either:
a. Perform a single rotation: first, select the shape or group of shapes you want to rotate. Then hold
[CTRL/Cmd + R], click anywhere on your work area, hold your mouse button and drag your pointer
in a circular motion around your shape(s) until you obtain the angle you want.
b. Activate the rotation mode: hit the shortcut [CTRL/Cmd + Alt + R] to activate the rotation mode.
When you are in this mode, you can perform rotations using only your mouse, you don’t need to
hold keyboard keys at the same time.
To perform a rotation, click on a shape or selection of shapes, hold your mouse button and start a
circular motion with your pointer around your selection. Release your mouse button when you
obtain the angle you want and hit [CTRL/Cmd + Alt + R] again to turn off the rotation mode.
When you are in this mode, you’ll notice you can’t move your shapes in a translational motion
anymore, so be sure to deactivate it when you want to create a pre-defined shape, because you
won’t be able to drag it to your work area if the mode is on!
Note: when you rotate a shape that has a custom center, you’ll see that this custom center keeps its relative
position to the default center (the center of gravity) of the shape. So, the direction of your effects is not
affected by the rotation, but their overall path might be affected because of the alteration of the custom
center.
Original position of the custom centers (left) with a preview of stripes and radial glow effects (right)
After a rotation, the stripes are unaffected, but the radial glow effect is, because the custom centers have moved.
Performing symmetries
Symmetries allow you to make a reflection of the shapes you have selected, with respect to a vertical or
horizontal axis (all the while keeping the original shapes).
1. First, you have to select the shapes you want to make a symmetry of.
2. Then, select the desired type of symmetry from the list in Tools → Symmetry, or with the
associated shortcut. You can achieve four different types of symmetry:
Note: a symmetry might affect the left-right direction of your effects. In general, the overall path might be
affected, because your custom center will also be reflected when you perform a symmetry. A symmetry also
reflects the content of players!
Top 1: the original player in the bottom left corner is reflected using multiple symmetries, its content is mirrored.
Bottom 3: example of a “Horizontal Down” symmetry, the position of the custom center (left and middle) and the direction of the
line effect (middle) are mirrored, but the white special-swipe effect (right) is unaffected.
Adding effects
One of the great features of HeavyM is that it comes with an integrated library of ready-to-use visual effects
that you can easily add to your mapping. These effects can be combined and you can set their numerous
parameters to your liking.
This chapter will help you discover all the effects and how to manage them and your groups.
Grouping faces
What are groups for?
In order to add effects to your mapping, you first have to understand the concept of groups, because most
visual effects are assigned to groups (except for transitions and post shaders, which are assigned to the
whole output in a sequence).
Groups can be considered as effect banks. They allow you to display different effects in the faces of your
mapping. Indeed, when you add some faces in a group, all these faces contain the same effects.
You’ll notice that the shapes in your work area bear the color of the group they belong to. This color can be
changed by clicking on the color icon of the group, which reveals a 30-color palette. Note that this doesn’t
affect the projection, it is only a visual help to better differentiate shapes in the interface.
The square is in Group 1, the triangle in Group 2 and the circle in Group 3.
Furthermore, Group 1 is below Group 2, with Group 3 above, which is reflected in the output on the right.
In the picture above, you can see that the order of the groups is important. You can alter it, as it determines
which layers are rendered in front of others in the output. Indeed, if a group is above another in the list, it
will be displayed in front of it.
The only group that can’t be moved in the list is the Masks group at the top, as masks are always generated
above everything else. Learn more about the rendering order in the dedicated chapter.
Note: the Masks group also cannot be renamed or selected, contrary to other groups. To rename a group,
simply double-click on its name in the list to access the input field.
Creating groups
The creation and organization of groups is managed from the layers panel. You can have 1 to 30 groups in a
sequence, without counting the Masks group. They can each contain as many shapes as you want (in the
limit of 300 shapes per sequence). They can even contain no shape and only effects (kind of like presets).
Use the plus button at the top of the layer panel to add a new group. If you had a selection of shapes
when you clicked on it, they will be directly added to this newly created group.
Notes: you’ll learn later in this chapter that there always has to be an “active” group. That’s why there has to
be at least one group in each sequence (in addition to the Masks group).
Once a face is moved to a different group, its color in the work area switches to that of its new group.
Note: a face can only be in one group at the same time and there can’t be subgroups.
• First method
1. Select the shapes you want to put in a group.
2. In the layers list, simply drag & drop your selection in the desired group!
• Second method
1. Select the shapes you want to put in a group.
2. Click on the Add to group button on the desired group in the layer list.
• Third method
1. Select the shapes you want to put in a group.
2. Right click anywhere in the work area. A context menu will unfold.
3. Now hover over the "Move to" item, a list of all the groups in the sequence will unfold. Simply
choose the desired group in the list.
At the top, there’s also a “New Group” item. Clicking on it will create a new group and put your
selection of shapes inside directly. It is the same as clicking on the Add Group button with a
selection.
Note: you can also use the options menu of a single face to find the same option.
Note: players can also be added to groups using methods 1 and 2 and right-click options, but it doesn’t
serve the same function (players can’t contain built-in group effects). It is purely for display purposes, which
we’ll detail in the chapter dedicated to the display settings of players.
You can see which group is active in the layer list because of its lighter color and colored border. It is also
indicated by a label at the top of the effects panel.
Here, the pink group named “Door” is active in the layers panel so it is editable in the group effects panels.
There are two methods to select a group and thus make it active and editable in the group effects panels.
Note: there has to be one active group at all times. There also cannot be multiple active groups at the same
time, so you can’t select multiple groups at once.
• First method
You can select a group by simply clicking on it in the layer list. You’ll notice that this method will also select
all the shapes that are in this group.
• Second method
You can also select a group by simply clicking on one shape it contains, in the layer list or the work area. This
method won’t select all the shapes in the group though.
Note: when you deselect all shapes, the active group stays the same until you select another one. Also,
when you make a selection of shapes from different groups, or if you select a mask or a player that is
outside of any group, the editable group stays the same.
Arranging groups
We’ve mentioned in the previous paragraph that the order of groups in the list had an importance.
Indeed, it directly impacts the order of selection in the work area and the rendering in the projection. You’ll
learn more on this in a future chapter, but know that if a group is above another one in the list, all its faces
and effects are rendered in front of the latter in the output.
To change the position of a group in the list, you can simply drag and drop it. You can also use the Move
Group Forward or Move Group Backward buttons at the top of the panel to move the active group
one step up or down in the list. These features are also accessible from the options menu of a group, in the
“Arrange” submenu (with additional Move to Front and Move to Back options).
Overview
In the example picture on the left, you can see different tabs: Border, Line and Repeat. They are the
subcategories of Outline effects.
There, we are in the Border tab, so the settings of this effect subcategory are displayed. The red color of the
icon in the tab title indicates that the effect is activated for this group and you can also see that the switch is
turned on above the tab. (You’ll notice that the Repeat effect is on as well.)
You don’t have to activate an effect in order to manage its settings, you can set its parameters and then turn
it on. For example, in our screenshot example, you could navigate in the Line tab and change the settings
while the effect is off and only turn it on when you’re ready to display it.
In the picture on the right, you can see that the post shaders panel is different. Indeed, post shaders are
organized in a list, not subcategories.
By default, a white border effect is on in every group, so that you can see your shapes in the projection
when you draw. Here’s a preview of the default state:
Activating an effect
• Outline, Filling, Transformation, Transitions
1. First, check the label at the top of the panel to make sure you have selected the right group (for
outline, filling and transformation effects) or sequence (for transition effects) in which you want to
add effects. Here, we’re going to take our green group, named “Group 3”.
2. Then, open a category and select the tab corresponding to the type of effect you want to add. For
this example, we’re going to add a Radial Glow effect, located in Transformation → Structure.
3. Click on the switch above the subcategory tab to turn on the effect.
The default effect in the Structure category is Radial Glow. You can now see it appear in the faces
in the green group, combined with the white border effect that was already on.
Note: you don’t have to be in the tab to activate the toggle. For instance, here, you could turn the
rotation effect on without having to switch to the tab.
4. Now, you can try to combine multiple effects in different groups, and change their settings. Learn
how to do so in “Managing the settings”.
• Post Shaders
Here are the options on each post shader:
1. First, make sure you have selected the sequence in which you want to apply a shader.
2. Then, open the post shaders category and click on the yellow cross icon at the top-right of the
panel. You’ll see a list unfold with all the available post shaders.
By default, post shaders are turned off and developed when they are added to the panel.
3. You can now activate it by clicking on the switch, and set its value. When on, a post shader has a
lighter gray.
Note: when you activate multiple post shaders at the same time, their order in the panel has an
influence on how the result will look in your mapping. To move a post shader, grab it from the
dedicated top area and drag it to a new position.
Outline
As the name suggests, the effects in this category will animate the outline of the faces you have drawn. By
default, a static white border effect is activated when you create new group, so that you can see the faces
appear in your projection when you draw your mapping.
Note: Outline effects are assigned to groups and only apply to the faces they contain, not your whole
output.
There are three subcategories in the Outline category and you can activate one effect from each at the same
time. They are described in the following paragraphs.
• Border
The effects from this category draw and animate the edges of your shapes. There are four of them. You can
choose between:
Blinking Alternates between showing and hiding the edges of your faces,
which makes it seem like it’s blinking.
Half Only shows one out of two edges of each of your faces at the same
time. Alternates between all edges.
Quarter Only shows one out of four edges of each of your faces at the same
time. Alternates between all edges, clockwise.
• Line
The effects from this category draw and animate lines along the edges of your faces. There are three of
them. You can choose between:
Normal Displays a line moving along the border of your faces in a linear
motion.
Boomerang Displays an animated line on each edge of your faces. Each line
moves back and forth between the ends of the edge it’s on in a sort
of bouncy motion.
Yoyo Displays an animated line on each edge of your faces. Each line is
tied to one end of the edge it’s on and extends until it reaches the
other end, then retracts completely and so on. Kind of like a yoyo
that goes down till the end of the thread, then comes back up.
• Repeat
There’s only one effect in this category, the repeat is an effect on its own. It duplicates the outline
animations of your faces, which means that if you don’t have a Border or Line effect on, it won’t show
anything.
Left: Repeat effect with Border, Right: Repeat effect with Line
Filling
As the name suggests, the effects in this category will animate the filling of the faces you have drawn. By
default, no filling is activated.
Note: Filling effects are assigned to groups and only apply to the faces they contain, not your whole output.
There are three subcategories in the Filling category and all the effects are described in the following
paragraphs.
• Color
The effects from this category animate the filling of your faces with color. There are three of them. You can
choose between:
Plain Color Fills your faces with a plain color (or an animation of plain colors).
Random Color Fills your faces with plain colors that alternate randomly.
• Special
The effects from this category add animated colored figures inside your faces. There are ten of them. You
can choose between:
Inside Fills your faces with an animated tile that grows from their center
towards their borders.
Outside Fills your faces with an animated tile that grows from their borders
towards their center.
Corner Fills your faces with animated tiles that grow from their corners
towards their middle.
Swipe (solo) Fills your faces with an animated tile that grows like it has been
swiped from one side. Each shape has its own tile.
Swipe (global) Fills your faces with an animated tile that grows like it has been
swiped from one side. There’s one tile that covers all shapes of the
group.
Stairs Fills your faces with an animated tile that looks like stairs.
Hypnotic Fills your faces with a hypnotizing animation, with a motion that
originates from their center.
Double Stripes Fills your faces with two layers of animated stripes.
Mosaic Creates a mosaic inside your faces, with a different opacity for each
tile.
Note: the animated figures created by these effects are placed above the effects in the Color category in
your filling. That means that if you have a Color effect on and you put a Special effect with a slightly
transparent color setting, you’ll start to see the Color effect behind.
Blue Color effect, with a white Special effect above. On the right, the Special is slightly transparent
• Snake
There’s only one effect in this category, the snake is an effect on its own. It creates an animation that lights
up the fillings in your faces one by one, following a path that you define.
You can choose to apply it on the Color, the Special, or both at the same time. That means that if you don’t
have at least a Color or Special effect on, it won’t show anything.
2. You’ll see that your cursor turns into a cross and you can now draw a line by clicking and dragging
the cursor in your work area.
Every time your cursor goes through a face, the face will turn white, which means it has been added
to the snake’s path.
Note: the order in which the faces are added to the path defines the order in which they will light
up in the snake.
3. Release your mouse button when you are satisfied with the path you have drawn.
4. You’ll notice that once you start drawing, the “Start drawing” button turns into “Validate path”.
Note: when you are in the drawing phase, clicking anywhere on your work area before validating will erase
the current path and you’ll have to start a new one!
Once your path has been defined, know that you can always go back and edit it later by starting the previous
process again.
Note: in order to draw a discontinuous path in multiple parts, simply draw the first part of your line
normally, then hold [CTRL / Cmd] and start drawing a new part, etc.
Transformation
As the name suggests, the effects in this category will animate the faces you have drawn and transform their
form. By default, no transformation is applied.
Note: Transformation effects are assigned to groups and only apply to the faces they contain, not your
whole output.
There are two subcategories in the Transformation category and all the effects are described in the
following paragraphs.
• Rotation
There’s only one effect in this category, the rotation is an effect on its own. It will allow you to animate your
faces in a 2D or 3D rotational motion. You can combine the 3 axis of rotation.
It affects the content of your faces: when you apply the rotation effect to a group of faces, the Outline, Filling
and Structure effects they contain will follow the circular motion.
• Structure
The effects from this category create visual effects in motion from your faces. They are a bit difficult to
describe with words, so we’ll let you guess from the icons! You can choose between 8 of them:
ICON NAME
Radial Glow
Wire Frame
Round Trip
Origami
Strokes
Elastic Position
Elastic Rotation
Elastic Scale
Note: these visual effects are generated from the outline of your faces, but they don’t depend on the Outline
effects. The structure effects are completely independent, you can activate them and see their visual
animations without having any other effect on.
Wire Frame, Elastic Rotation and Strokes effects, displayed in square shapes without Outline effect.
Post Shaders
Post shaders are visual effects that are applied on the final rendering in your output. In other words, they
will affect the appearance of the shapes and their attributes in your projection (not in the interface), with
new visual effects like blurring or strobing effects.
Note: Post Shaders are assigned to sequences and apply to the whole output, not specific groups of faces.
The Post Shaders panel is organized a bit differently than the other panels. There are no subcategories, the
post shaders are stored in a list. There are sixteen of them in total:
NAME EFFECT
Black & White Drains out the color in your output and displays shades of gray instead.
Convergence Can make you feel like you’re wearing 3D glasses and your eyes are not teaming
up properly.
Cut Slider Can’t say much more than what the name suggests.
Old TV Makes the colored parts of your output look like an old TV screen that’s barely
working anymore.
Twist Makes it look like your shapes are shaken up by electric shocks.
Transitions
Your HeavyM project can be divided in sequences, where you’ll have different effects, different medias, or
even different shapes. You can add effects between your sequences, so that when you play them, the
transitions will be animated.
Note: Transition effects are assigned to sequences and apply to the whole projection area (including
players), not specific groups of faces.
There are two subcategories in the Transitions category: “Start animation” and “End animation”. Indeed,
you can add a visual effect at the beginning and at the end of a sequence (they are technically not “between”
sequences). The effects are the same in both subcategories and are described in the table below:
Inside Covers/uncovers the content of the sequence from the inside of the
projection.
Note: You need to be in “Play” mode to display transitions in your sequences. If you are “Paused” and you
just click on a sequence to display its content, the transitions won’t be triggered.
You’ll notice that some parameters appear in the properties of multiple effects. This section is intended to
help you learn how to control their value or status. We will also describe the function of all the parameters
you can encounter, so that you can understand them better and predict their action on your mapping.
Note: remember that you have to turn on the switch above its tab in order to activate an effect!
Color picker Accessing the color picker: the color picker will
open up when you click on the color setting of an
effect. When you are done choosing your color, just
click elsewhere and it will close.
Drop-down List menu that unfolds when you click on the white
menu down arrow. Allows you to select a mode in a list of
options. The selected option is written when the
menu is folded.
Value sliders Lets you set the value of a parameter. Slide the
(simple, double) knob to adjust the numerical value that is indicated
on the right. You can also adjust it with your mouse
wheel when you hover over it.
Origin selector Lets you select the point of origin for certain types
of transition effects. There are five options available
and the selected one is in yellow. Click on a grey dot
to choose a different origin.
Spin box Lets you set a numerical value for a parameter. You
can enter a value and increase or decrease it by one
with the up and down arrows respectively. (This
also works with your keyboard arrows and mouse
wheel.)
Push button Only used in the snake effect, this button allows you
to enter the path drawing mode and validate your
drawing after.
Settings
Here’s the complete list of parameters you can find in the effects panel and their meaning:
NAME FUNCTION
Line Length Refers to the length of the line, in percent. At 100, the line covers the whole outline
of the face.
Dashes Refers to the dashes you can add to a line. A line can be divided into 10 dashes max.
Direction Refers to the direction of the motion. It can be set with a wheel and a tick box (angle
value) or with a clockwise/counterclockwise toggle.
Speed/Tempo Refers to the velocity of the variation. It can be expressed with a speed value (or
multiplier range of value) or sometimes with a tempo multiplier.
Phase offset Shifts the starting point for the variation of the effect between each face of the
group. At 0 all the faces are in phase, otherwise they are be more or less out of
phase.
Line effect on 4 shapes of the same group with respectively phase offset=0 and phase offset=0.32
Note: in the case of the Repeat effect, the phase offset of the Line effect also
impacts the inner duplications in a face.
Inner offset Refers to the phase offset in the motion of the instances in some Structure effects.
Its effect is only visible if there are multiples instances.
Fill Percentage Refers to the size of the filling area created by some Special effects. At 100, the area
completely covers a face.
Origin Refers to the starting point for the path of the effect.
Depth Refers to the depth of the outline duplications in the Repeat effect.
Motion Refers to the type of possible motions for the gradient. There are four.
Blink: the gradient alternates between two positions, which makes it look like its
blinking.
Colors & Weights Refers to the colors in the Random color effect. You can add up to 5 colors. The
weight refers to the importance that is given to a color in the picking: if the weight of
a color is higher compared to that of other colors, it has a higher chance of being
displayed.
Transitions Refers to the type of transition between colors in the Random color effect. The
transitions can either be smooth (the colors fade in and out) or nonexistent (the
colors simply switch without blending).
Range Refers to the range of motion of the gradient effect if it is in Swing mode.
Variation mode You’ll find this drop-down menu quite often (for example for the color, the speed,
(Fixed - Tempo - the thickness, etc). It allows you to choose the type of variation of a parameter: you
Bass - Mid – High) can assign it a fixed value, or you can make its value vary depending on the tempo
or a frequency range.
Positions Refers to the two possible positions of the gradient effect if it is in Blink mode.
Start drawing / Refers to the mode that allows you to define a path for the snake effect.
Validate path
Parts Refers to the size of the snake effect. It can have up to 300 parts (which is the
maximum number of shapes in a sequence).
Axis Refers to the axis of rotation. You can select one (X, Y, Z) or combine them.
Instances Refers to the number of instances of the stroke in a face. If you put more than one,
it is necessary to also adjust the inner offset value to a different value than 0.
Otherwise, the instances will be perfectly superimposed and you’ll only see one!
Segments for Some effects are relative to the number of sides in a face (e.g. Structure - Strokes).
ellipses Since ellipses technically don’t have straight edges, you can set a number of
segments that will be used to divide the outline of ellipse faces instead.
Center The blue line linking a custom center to its face can help you visualize the path that
your effect will have.
Other options
Group effects options
In the layers panel, you can access extra settings for group effects from the group options menu.
• Reset effects
This option resets the effects of the selected group to their default settings. It means that the faces in the
group will go back to their default state, with only a white border effect on and all effects parameters reset
to their default values.
• Copy effects to
This options allows you to copy the effects of the selected group and paste them into another group. This
copy takes into account all settings values and if the effect is on/off.
Note: this action will replace all effects settings in the destination group.
Note: as of HeavyM 1.6, players can support 5 categories of sources: Medias (photos, videos, GIFs), Webcam
streams, Syphon/Spout streams, Shaders, Text.
Overview
When you add a player, the player settings panel opens up on the right of the interface. You can also open it
by clicking on the related icon or simply by selecting a player if a properties panel is already open.
This panel allows you to define the settings and access the playback options of selected players. You can
unfold the parameters section of each player to change its settings, and fold it to gain space.
Each type of player has a similar layout, even if the options can differ.
For more information, please refer to the dedicated sections for each type of source below.
Note: also by default, the content of a player is the same throughout the whole project. If you want to have
different sources in a player in different sequences, you have to set the sequencer in “independent media”
mode. See “Choosing a sequencer mode” for more information.
Note: by default, players are already in this mode when you add them.
2. Your player is now in media mode, so you can select a file by clicking on the cross icon +.
This will open a window allowing you to browse the available files on your computer and search for
your media. HeavyM supports .mp4, .mov, .png, .jpeg, .jpg and .gif files.
3. Don’t forget to click play and to set the display settings in order to see this player in the projection.
See display settings and playback options.
They allow you to get a quick access to these files. Indeed, if you click on one of these thumbnails, it will load
the corresponding media directly in your player (and thus switch your player to media if it was in a different
mode).
1. Go to File → Import media… This will open a window allowing you to browse your files.
2. Select a photo, a video or GIF file and click on “Open”. A player containing your media file will
automatically be created.
Simply select a photo, a video or GIF file and drag it from your computer folders to the HeavyM work area. A
player containing your media file will automatically be created.
• Media settings
Like in all the other types of players, you can set the group assignment and the color.
● Volume: this item allows you to change the volume of your player, in the case of a video file.
● Resize: this item allows you to resize your player so that it fits the aspect ratio of your media.
• Media troubleshooting
Videos
If your videos are lagging or slowing down, make sure you are running on the correct graphics card by
following the procedure in “Running on the 3D graphics card”.
If it is still happening, try to use the recommended formats (.mov or.mp4) and codecs (h264, DXV, hap) for
the videos you play in HeavyM.
GIFs
Some GIF files are not supported in HeavyM due to their encoding. Try re-encoding your GIF differently if it
happens.
Webcam
• Adding a webcam stream in a player
1. In the settings section of your player in the panel, go to Change Content and click on the webcam
icon.
3. Your player is now in webcam mode, so you can select a streams by clicking on the gray arrow .
This will open a drop-down list with all the available feeds. If you plug in a new webcam, refresh
to see it appear in the list.
4. Don’t forget to click play and to set the display settings in order to see this player in the projection.
See display settings and playback options.
Note: your computer has to recognize the device as a webcam, so it won’t work directly with a plugged-in
camera for example. To bypass this limitation, you can try using a software to convert the camera stream to
a webcam stream, or use Spout or Syphon to recover the feed.
• Webcam settings
Like in all the other types of players, you can set the group assignment and the color.
● Resolution: this item allows you to select a preset resolution for your webcam stream from a drop-
down list. In reality, the closest possible resolution to the one you choose will be applied (few
webcams support 1080p resolution for example).
Syphon/Spout**
Syphon and Spout are two amazing technologies used to send and receive video frames between
applications, in real time. It allows you to receive and display the feed of other applications in your HeavyM
projection and inversely, you can send your active HeavyM output to another program.
A video in Resolume (left) is streamed in a player in HeavyM (middle) through Spout. In the HeavyM output (right), this video is
affected by the display settings of the player and a Slitscan post shader.
Syphon is running on Mac with the most common video applications, while Spout is its little brother running
on Windows. You can check the lists of compatible programs for each one on their respective websites. They
include a lot of different programs, like Smode, Resolume, MadMapper, VDMX, Processing or Adobe After
Effects for example.
• Allowing Spout/Syphon
In order to be able to send the HeavyM output to another software, select Projection → Spout Output
Server, a tick will indicate it is activated. (In order to access this option, a projection window has to be open.)
If you simply want to receive a feed, you don’t need to activate this option, but you will probably have to
activate the feature in the sender software. For example, in Resolume, you need to tick the option in Output
→ Spout.
2. Your player is now in spout/syphon mode, so you can select a feed by clicking on the gray arrow
next to the source name .
This will open a drop-down list with all the active sources. On Windows, if you activate another
software in the meantime, refresh to see it appear in the list (a projection window needs to be
open too). On Mac, there’s no refresh button because sources are checked continually.
Note: the status of the source is displayed next to its name. Learn about this in the next section.
3. Don’t forget to click play and to set the display settings in order to see this player in the projection.
See display settings and playback options.
• Inactive source
If your selected source becomes inactive at some point during playback, your player will not be displayed
anymore but it will stay in “play” and the source will stay selected. That way, when the source becomes
active again, its display will come back automatically. (But it won’t appear in the list of available sources in
other players while inactive.)
Green check icon: active source Grey cross icon: inactive source (also labeled)
Furthermore, the selected source for a player is saved with your project so it will be associated automatically
when you open your project again.
Note: on Windows, you first have to open a projection window so that the status of sources can be checked.
Other than that, a syphon or spout player doesn’t have any specific setting.
Shaders
A shader is a program that communicates directly with your graphics card to render an image. You can find
a lot of tutorials and explanations about shaders on the web.
Shaders have parameters that you can control in HeavyM (like the settings of effects), they are called
uniform values and they differ with the shader you choose. You'll find a great variety of settings, like color,
speed or position variables, etc. Some shaders also use a source as input: you can use an image, a video, a
webcam stream, or even a syphon/spout** stream (only in HeavyM Live for this last one). In this case, the
shader is applied on the input source and you can see the effects live!
In HeavyM, we use fragment shaders (ISF and Non-ISF GLSL). To keep it simple, let’s say it’s a little program
that renders the color of each pixel of the image you want to display. To make those programs work, you
must have a graphics card that supports OpenGL 2.0.
Regarding the difference between the formats, ISF shaders are merely GLSL fragment shaders that have
been slightly modified in order to be understood more easily by interactive applications and thus create a
standard. Basically, a part of the code of an ISF describes how to interpret it, that's why you’ll see that you
don't need to convert it to use it in HeavyM (more details on this by the creators of the format here).
2. Your player is now in shader mode, so you can select a shader file by clicking on the cross icon +.
This will open a pop-up window: the shaders library (introduced in HeavyM 1.10). This library
contains built-in shaders (over a hundred) and you can also add your own in it.
3. Simply select a shader and click on “open” or double-click on it to import it in your player.
Note: hover over the thumbnails in the library to get animated previews of the shaders!
4. Don’t forget to click play and to set the display settings in order to see this player in the projection.
See display settings and playback options.
Your personal collection is located in the second tab of the library, titled "My Shaders". To add a shader,
simply click on “Add new +” and browse the files on your computer. The files have to either be .fs for ISF or
.frag for classic GLSL.
When you add a shader, it is copied in the HeavyM library folder on your computer. It is then ready to be
used in HeavyM like the other shaders. You can manage your collection as you wish, delete some shaders,
add an image or GIF that will serve as a thumbnail for your shader so that it's easier to navigate the list.
You can also manage your library directly from its folder on your computer. It is located in
Library/Application Support/HeavyM/ShadersLibrary (on Mac) and Documents/HeavyM/ShadersLibrary
(on Windows) and you can open it directly from the built-in library in HeavyM with the “Show in Folder”
button. It can be useful if you want to add shaders directly with their snapshots in bulk (the shader and its
preview just need to have the same name).
Technical notes:
Some ISF shaders also contain a .vs that will be copied automatically if it's located in the same file
and bears the same name.
You can also encounter compatibility issues with some ISF v1 shaders or ones using persistent
buffer and multipass, especially on Mac if your graphics card is not dedicated. Don’t hesitate to
update your graphics drivers, it can solve some problems. The ISF website also allows you to
convert ISF v1 shaders to ISF v2.
HeavyM can detect and display some types of errors in shaders, they are displayed in a pop up and
give you indications on the problems in the code.
First off, know that ISF shaders, which tend to become more popular, are very easy to import: if you find a .fs
file, you can directly add it and use it in HeavyM as described before. On the other hand, a common .frag, if
it hasn't created specifically for HeavyM, won't be directly compatible with the software. You can adapt it
yourself by hand (the method is described in a later part), or more simply use a .frag → .fs converter.
Warning: if you use a HeavyM version older than 1.10, ISF are not supported, therefore, you need to refer to
the "manual" method.
Note: depending on how you intend to use it, don't forget to check the license chosen by the creator! It
usually is stated at the beginning of the shader's code.
We're not going to teach you how to code here, but here is some advice on how to get started:
You can start by checking out the shaders on the ISF website and try to edit them to see what happens. For
instance you can begin with Solid Color, a shader that simply displays a color. Click on "FS" on the upper-left
corner of the page to see the code and try to change things, you'll see that your modifications are applied on
the preview live. Then you can go see Linear Gradient. You can try to edit it too and evolve towards more
and more complex shaders.
Then, you'll be able to start creating your own shaders by going to the homepage and clicking on "create
your own" and thus get access to a basic ISF template. Note: there are other editors with a live preview,
online or as apps, like ISF Editor (only on Mac for now).
There, now if you want more technical details on how the code of an ISF works, you can also read the next
part about .frag in HeavyM. The only difference is the part concerning uniform values, but the principle
behind the code stays the same!
To use other shaders, you don't need to understand everything but it's good to get the basics. To recall
specifications stated in a previous part, HeavyM only supports fragment shaders and to make them work,
you need at least a graphics card with OpenGL 2.0.
i. Output color
void main( void )
{
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
This is a short example that puts the red color on each pixel. You can already try this code in HeavyM.
Now, if you have set the correct display settings, your player will display a red image.
Here’s the explanation: each pixel is rendered by this code. gl_fragColor is the name given to the color we
get. We assign it an RGBA vector with some values between 0 and 1 (in our example, we have red, which is: R
= 1, G = 0, B = 0, A = 1).
Now you can try to change those values in order to get other colors.
A simple effect is to vary the RGB values based on the position of the pixel, in order to get a gradient:
In this code, we declare a number red, equal to the Y position of the pixel divided by 1000. We do the same
for blue, equal to the X position divided by 1000.
Therefore, the pixel located at (0,0), on the top left side, gets red and blue values equal to 0, so it will be
black, whereas the pixel located on the bottom right gets red and blue values equal to 1, so it will be purple
(red + blue).
Here, we divide by 1000 because we want some values between 0 and 1 (it depends on the resolution of
your shader).
You can then apply a lot of mathematical transformations on your colors to get some visual effects. To
understand this part, we advise you to read some tutorials dedicated to fragment shaders on the web.
● HM_x, HM_y, HM_z and HM_speed: just integer numbers between 0 and 100 that you can modify
from the interface.
● HM_time: a float corresponding to the elapsed time since the projection was launched.
Here’s an example:
First of all, we declare the uniform values, to tell the shader we are going to use them. We can then use
those values in the shader.
In the example above, the green value is equal to the sinus of the time (so we have a value between -1 and
1), to which we add 1 and then multiply by 0.5, in order to have a final value between 0 and 1, that varies
with HM_time.
The colors are now animated. You can see a preview in our online tutorial.
Here is another example of a code which draws a circle that changes color based on time. The circle radius
depends on the HM_x variable, which you can modify in the software.
void main(void)
{
The colors are now animated. You can see a preview in our online tutorial.
The first things to modify are the Uniforms values. They are chosen by the person who executes the shader.
In HeavyM, we chose to put 6 uniform values and to name them in a certain way (see above). You have to
adapt your shader, depending on those names, to get your values correctly from HeavyM.
#ifdef GL_ES
precision mediump float;
#endif
float s = sin(time + i ) ;
float c = cos(time + i );
f += 0.003 / abs(length(8.0* position *f - vec2(c, s)) -0.4);
}
In this code, glslsandbox calls those uniform values time and resolution. So you have to replace all the
occurrences of time by HM_time and all the occurrences of resolution par HM_resolution.
#ifdef GL_ES
precision mediump float;
#endif
float s = sin(HM_time + i ) ;
float c = cos(HM_time + i );
f += 0.003 / abs(length(8.0* position *f - vec2(c, s)) -0.4);
}
There are a few shaders already modified by the HeavyM team on our Resources page.
• Shader settings
Like in all the other types of players, you can set the group assignment and the color.
● Uniform values: they have already been discussed earlier in this section. Those are variables that
have been declared in the code of your shader and you can control the value of some of them from
HeavyM.
Note: you can fold the Uniform Values section in the settings to gain more space when you don’t use it.
Text
• Adding text in a player
1. In the settings section of your player in the panel, go to Change Content and click on the text icon.
2. Your player is now in text mode, so you can add text in it by clicking on the pen icon .
This will open a window allowing you to write some text in an input field.
• Ok: this will validate your text input and exit the edit window.
• Apply: this will validate your text input and keep the edit window open. That way, you can see the
result in your projection and quickly make new changes to your input if it does not suit you.
• Cancel: this will exit the edit window without applying any changes you have made since your last
validation.
3. Don’t forget to click play and to set the display settings in order to see this player in the projection.
See display settings and playback options.
• Text settings
Like in all the other types of players, you can set the group assignment and the color.
● Font file: a drop-down menu that allows you to choose a font. A few fonts with different weights are
directly available in HeavyM, but you can also upload your own font file with the last option of the
list “Add your own font…”.
Here’s the list of font families that are already in the software: Amatic SC, Creepster, Dancing
Script, Gloria Hallelujah, Karla, Love Ya Like A Sister, Monofett, Nosifer, Orbitron, Pacifico,
Palanquin, Permanent Marker, Press Start 2P, Roboto, Sancreek, Shadows Into Light, Special
Elite, Titillium Web, UnifrakturCook, VT323.
● Font size: this item allows you to set the size of the text font.
● Line spacing: this item allows you to set the size of the gap between two lines of text in a
paragraph.
● Alignment: this item lets you choose the type of alignment of your text inside the frame of the
player. You have 3 choices: left, center and right.
• About encoding
The text feature in HeavyM supports UTF-8 character encoding. You might not be able to display some
special characters or alphabets, like letters with accents or Chinese characters for example.
• About textures
A player containing text is not a text field, it is a texture. That’s why you can’t edit the text directly inside the
player.
It behaves like an image with your text engraved in it, you can distort it by editing the corners of the player
or by using the grid or the warping mode. This is why if you enlarge it too much compared to the set size of
the font, it might appear pixelated.
Display settings
There are different ways to display a player. You can choose to project its content entirely, or you can
configure the display settings so that its content is only visible in specific faces of your mapping.
You can choose between three different display modes for each player, accessible from the drop-down
selector located on a player item in the layer list.
The modes are: “Background Display”, “All Groups Display” and “Solo Group Display”. We’ll go over the
differences in the following paragraph.
Depending on the mode, a player will have a specific place in the layer list. So you can also directly change
the position of a player in the pile to adjust its display setting and the mode will switch accordingly.
All players with this option are at the bottom of the layer list so they are displayed in the background,
behind all faces and all their effects.
If there are several players with this display setting in the same sequence, you can still change their order of
superposition.
Note: by default, when you add a player in the work area, its display mode is set on “Background Display”.
This mode allows you to mask parts of a player and only project its content inside all the faces in your
mapping, regardless of their group assignment, as if it were cropped.
Here, the player is visible in all the faces of your mapping, behind all effects, but masked outside of their
boundaries.
Player 1 is displayed within the boundaries of both groups, behind all effects
If there are several players with this display setting, you can change their order of superposition.
Note: if you hide a face, the part of the player that was displayed inside will be hidden in the output.
This mode allows you to mask parts of a player and only project its content inside the faces of a specific
group, as if it were cropped. The player will be displayed behind all faces and their effects.
In this case, the player is part of a group, so it is necessarily displayed above all faces and effects that are in
groups below the one it is in, as well as “Background Display” and “All Groups Display” players. On the
other hand, it is behind the faces and effects of its group and other groups above.
Know that to set this display mode, you can also directly put the player in a group, using the usual methods
(drag & drop, “add to group” button, etc).
Note: if you hide a face of this group, the part of the player that was displayed inside will be hidden in the
output.
Cheat sheet
Here’s a summary of the rendering order and the position of players in each display mode:
(notice that the layer list gives you a good idea of this order)
RENDERING ORDER
for players and effects
Masks
Output effects
“Background” players
Warning: since players are rendered behind all effects in the faces they are displayed, don’t forget to turn
off or lower the opacity of any filling effect that might cover it!
For detailed information and explanations on the rendering order of visuals in the output, please refer to
the dedicated chapter.
You have learned that players are rectangular shapes that correspond to the projection area of an external
source, with only 4 movable vertices.
However, the basic shape-editing options you have with a rectangular shape might not always be enough to
adjust your texture on a real mapping structure. If it is the case, you can use the warping module to fine-
tune the distortion. Warping is a technique used to manipulate a texture in order to correct its distortion,
whether it is to adjust its shape on a complex surface or for creative purposes.
The warping module of a player provides you with a grid that enables you to distort specific areas of your
texture. This module is accessible in your player’s settings, in the corresponding panel:
You will notice the changes you apply on the grid impact the appearance of the texture in the projection
directly. When you are done editing the warping grid, you can exit the mode by clicking the “Exit mode”
button or by pressing the Esc key.
Note: you can use the usual selection methods on the control points: selection of multiple points (with
CTRL/Cmd or a selection box), resizing (with alt), etc.
2. Interpolation
You can choose between two types of interpolation: “Linear” and “Bézier”.
In “Linear” mode, lines between control points are straight. With “Bézier”, handles are added to control
points and this creates curved lines.
Example of the same warping with Linear (left) or Bézier interpolation (right)
Note: for now, Bézier handles can’t be edited and are not displayed, so default tangents are used.
For each subdivision, HeavyM calculates a deformation grid relative to its 4 control points and the
interpolation type. You can then choose the level of precision (4) of this grid. Basically, the precision is the
number of divisions calculated inside each subdivision, in order to adjust the lines between control points
more or less precisely. By default, this grid contains 10 lines and 10 columns in each subdivision (max 20 by
20).
Warning: know that increasing these numbers will imply more calculations and thus use more resources.
Depending on your mapping, try to adjust these values so that both the visual results and performances are
satisfying. For instance, if you use a great number of subdivisions, try to reduce the precision if it doesn’t
impact the quality of the rendering much.
Note: If you tick “Show precision grid in output”, the precision grid will be displayed in the output.
A player with its warping grid displayed (left) and one with the subdivisions hidden (right)
Note: this grid is only displayed if the texture is displayed, i.e. if your video is not visible or the player is
paused, this option has no effect.
8. Reset warping
This button resets all control points to their default positions on the warping grid. Only the basic
deformation relative to the vertices of the player shape remains.
● starts playing the player and makes its content visible in the projection (according to the display
settings you have defined). Once you click on this button, it will turn into a pause button.
● pauses the playback of the player. When paused, a player is hidden in the projection. If the
player contains a video, a cue point is placed where the video has been paused. Once you click on
this button, it will turn back into a play button.
• Bulk commands
You might want to synchronize the playback of multiple players at once. That’s why there are bulk
commands.
● starts all selected players at the same time. If some players contain paused videos, they will
start from their pause cue points. It doesn’t affect videos that were already playing.
● pauses all selected players at the same time. If some players contain videos that were
playing, cue points will be created.
● stops all selected players at the same time and resets the pause cue points for videos. It
works like the pause all button for players that don’t contain videos.
● stops the playback of the video and erases any pause cue point.
● activates the repeat of the related video. When the playback reaches the end of the video (or
an end cue point), it starts back from its beginning (or a start cue point) and the video is looped
infinitely (within its related sequence). When off, the icon is grey and it turns yellow when activated.
● start and end cue points allow you to trim your video. Simply drag the grey
triangles along the progress bar. Now the video will only be played between these cue points. The
new starting and ending times are indicated on the sides of the progress bar.
Note: the timer below indicates the playback pointer position in the media timeline.
Now if you want to have different sources in a player in different sequences, you have to set the sequencer
in “independent media” mode. This is explained in a later chapter in this manual, in “Choosing a sequencer
mode”.
In this section then, we are going to describe the behavior of videos if you have changed the sequencer
settings to “independent media”. In this mode, when a video is activated (play is on), its playback is adjusted
to that of the sequencer. They are different cases:
If you switch to another sequence, the videos (with play on) it contains are triggered from their start cue
points.
Note: if you select another sequence, it won’t affect what’s in the output since the projected sequence will
still be the one that is paused, see “active sequence vs. projected sequence”.
Now, if a sequence and a video are looped, when the sequence starts again, the video keeps playing
continuously without a cut or restart.
Note: the playback buttons of the sequencer don’t change the state of videos. For example, if a video is
paused, it will stay paused even if you launch a sequence.
In the layer panel, you can arrange players, faces and groups. The layer at the bottom of the list is the one at
the back in the projection and the work area.
→ In the work area, if you click on a pile of shapes, the highest one in the layer list will be selected. If you
wish to reach an object that is behind, you have to select it directly from the list.
→ In the output, it depends if we’re talking about groups or objects inside a group:
All elements in a group (players, shapes with group effects) are displayed in front of the elements in
the groups below in the list. Inversely, they are rendered behind elements from groups above in the
list. Don’t forget there are also Output effects, which are rendered above everything.
Inside a group however, let’s say the rendering order of group effects has “more impact” than the
order of faces inside the group (check out the tables in the next section). Also, players that are
clipped to a group are also at the bottom of this group, behind its faces and effects.
Note: players have specific display modes, they are not always contained in groups and can be clipped, but
they follow the general principle that if a player is above another, it will be displayed in front of the latter.
If you wish to see the full table with the rendering order of all elements, you can skip to the last section of
this chapter. To get a specific explanation on the behavior of players, check out the display modes.
For example, if face 1 is in front of face 2 in a group with a color filling and border, the color effect is
rendered first (for face 1 then face 2), then ahead it will be the border effect (for face 1 then face 2).
Therefore, the outline of face 1 will be in front of the filling of face 2, even if the latter is above in the layer
list. This is better illustrated in the following picture.
In the work area, you can see that Face 3 is in front. In the output, the rendering is done effect by effect first.
In the list, Group 1 (white) is at the bottom, Group 2 (blue) in the middle and Group 3 (green) on top.
Notice the difference? Here, there’s a clear superposition in the output, because all effects of group 1 are
rendered behind group 2, with group 3 on top.
Here’s another example, this time with different effects in the three groups:
All effects of a group are rendered behind the effects of groups above in the layer pile.
Here, you can see that the Mask face is unaffected by the Swell post shader, as it is rendered last.
Since it would be difficult to understand if we put everything in the same mapping, we made a table for
reference in the next page.
In the table, the rendering order is given for a mapping with 3 faces, placed in two groups: Group A contains
Face 1 and is below Group B. Face 3 is in front of Face 2 in Group B.
RENDERING ORDER
Group A Group B
Masks
Transitions
Post Shaders
Structure effect 3
Special effect 3
Color effect 3
Structure effect 2
Structure effect 1
Special effect 2
Special effect 1
Color effect 2
Color effect 1
“Background” players
Obviously, all this might be hard to grasp on paper, so the best advice we can give you is to experiment!
To make your mapping more lively, you can animate your effects on the beat. This can be used as a trick if
you don’t have a good microphone to coordinate your effects with sound: just adapt the tempo in HeavyM
to the rhythm of the ambient music, you’ll get the illusion that sound and animations are linked!
Note: the tempo specified in this module also regulates the duration of sequences if your sequencer is in
tempo mode (as opposed to time mode).
You can check if the tempo corresponds to what you want with the visual indicator at the bottom of the
module: the little yellow line moves to the beat you set. You need to click regularly a few times so that the
BPM value can be calculated precisely. If you feel like it’s a bit off, you can increase or decrease the value
slightly with the up and down arrows of the input field.
The Resync button is also there to help you in this process of setting a coordinated tempo: click on it on the
first beat of a bar in your sound in order to restart the visual indicator to the beginning (i.e. the yellow line
starts back from the bar). That way, the tempo in the software and in your sound are not out of phase. This
also means that your tempo-reactive effects will be in phase.
Note: if the playback of the sequencer is activated, hitting the Resync button will also restart the current
sequence from the beginning.
That’s why we’ve introduced Ableton Link in HeavyM 1.10: you are now able to synchronize the HeavyM
BPM value with that of other apps. Learn all about it in the following paragraphs or refer to our video
tutorial for a hands-on example.
• What’s Link?
As per the Ableton website, “Link is a technology that keeps devices in time over a local network, so you can
forget the hassle of setting up and focus on playing music.”
The protocol syncs up tempo, beat and phase between multiple applications that can be running on one or
multiple devices. That way, you can for instance sync HeavyM and your other visual animation apps on one
computer, and also keep in time with the DJ’s DAW. All these applications have independent, non-identical
timelines, but Link will allow them to play in time.
Also, although the technology is developed by the Ableton team, you don’t need to have Ableton Live to use
Link! Indeed, Link-enabled apps can use the protocol between themselves autonomously. For instance, you
can link Traktor, Resolume and HeavyM together without having to install anything.
Note: usually, other apps have more or less the same process to activate Link.
When Ableton Link is on, the toggle turns yellow and its label displays the number of peers connected to the
session.
In order to join a session, you’ll have to be on the same local network as the other devices. If it is the case,
then you don’t have to do anything else: all connected devices are automatically added to the session.
When you join the session, the HeavyM BPM value is adjusted to the common value of the other devices
already in session and it doesn’t disrupt the session at all. The same goes for all other devices: the
newcomers are always the one aligning their BPM to the common value when joining in.
Once in the session, you can keep performing independently, but remember that all devices will have a
common tempo value and everybody in the Link session is equal and can adjust this value, there’s no
priority. So if you’re VJing with a DJ, be careful: when you change the tempo, it will affect his music too!
Later, if you wish to leave the session, simply click on the toggle again to turn off Link in HeavyM. The
session will keep running for the other devices, you won’t disrupt anything by leaving and your BPM value
will not be altered.
These concepts allow the visuals in HeavyM to match perfectly to your sound. For instance, it’s better if a
tempo-reactive effect hits its peak in-phase with the kick of the drums right?
In order to accomplish this beat-matching in the HeavyM timeline, playback might need to be altered.
Indeed, when you start playing a sequence, its launch might have to be delayed in order for it to fall
perfectly in sync with the timeline of other devices.
When this happens, you’ll see the Play button on the sequence blink. It means it’s waiting until the next key
beat to start. Note: Ableton Live users, it’s the same principle as the launch of Clips in the Session View.
With this method, you don’t have to be precise and calculate when to start, you can hit play whenever you’d
like and the launched sequence will start on the next key beat (for example, a 4-beat sequence won’t start
playing until the beginning of the next bar.) This is only the case for the first launch of a sequence, then your
timeline will play normally and the next sequences won’t be delayed to wait for a bar. So remember, if you
want to play one sequence each bar, 1 bar = 4 beats!
Note: for a detailed explanation on the musical concepts of tempo synchronization, beat alignment and
phase synchronization, we invite you to consult Ableton’s very thorough Link documentation.
● It can be used for the velocity of an effect. For example, in the Snake effect, you can define either a
speed or a tempo. With a speed, your snake will move with smooth transitions, whereas with the
tempo, you’ll see each tile appear on the beat. Switch between speed or tempo mode with the
toggle button on the top-right.
● But mostly, you’ll often find it as a parameter to animate a specific aspect of an effect, like its color,
thickness, depth, line length, velocity, etc. For this example, we’re going to describe the behavior of
the depth of the repeat effect if we set it on the tempo mode.
To do so, use the drop-down menu to select the tempo option. You’ll notice that you can choose a
start and an end value. This means that the depth value of the effect will vary continuously in this
range between every beat.
These sources can be microphones, when you want to capture the ambient live sound in your performance.
But sometimes, your microphone may not be of good quality and you get some unwanted noise. Or you
simply don’t have a microphone, so you might want to use sound coming directly from your computer. Your
computer is not directly available as an audio source in HeavyM, but there are ways to get this feature on
both Windows and Mac OS.
Windows
If you’re a Windows user, there’s a pretty simple native solution, you just have to activate the stereo mix.
1. In the taskbar, right-click on the sound icon and select “Recording devices”.
Note: if Stereo Mix doesn’t appear in your list of devices, try right-clicking on a blank area in the
panel and check “Show Disabled Devices” and “Show Disconnected Devices”.
3. Finally, define Stereo Mix as the default device by right-clicking on it and selecting the option in the
list.
Now, you should see it appear in your list of audio sources in HeavyM. If not, try restarting the software so
that the changes can be applied.
Note: this audio source will take into account all the sound coming from computer, not from a software in
particular, so you might want to use the Volume Mixer (right-click on the sound icon) to mute unwanted
noise (for example punctual system sounds that might disturb the audio analysis).
Mac
There’s no native solution on Mac OS, but you can find free applications to create a virtual audio output
device that can also act as an input. Soundflower is a good example.
You can adjust it with the slider on the left of the module, or in the settings window (accessible with the gear
icon). Do it with your audio source activated, until the amplitude of the values in the spectrums satisfies you.
Note: usually, the audio interfaces you use as input also have a gain or input volume level control. For the
built-in microphone, you’ll find it in System Preferences → Sound on Mac OS, or by right-clicking on the
volume icon in the taskbar to access the sound settings on Windows.
These bars represent the average values calculated for each frequency range: Bass, Mid, High. Click on the
gear icon in the header of the module to adjust those ranges.
In HeavyM, the full spectrum has been divided in 15 bands, from low to high frequencies (from left to right).
Simply put, the three graphs you see represent the magnitude/level as a function of those 15 frequency
bands. Which means that if a bar is high, the frequencies in this band have a high level in your sound.
Note: don’t get confused, these three graphs each represent the full spectrum from the same source! There
are three graphs only because you can define 3 specific frequency ranges (Bass, Mid, High) to be analyzed
and you can adjust each of their gain, so the levels might differ for the calculation of the average value.
Later, you’ll be able to make your effects react to these different ranges. By default, Bass is the range that
contains the five lowest bands, Mid contains the 5 bands in the middle and High contains the five highest
bands.
1. Let’s say we want to modify the bands used in the Bass range. The modifications will be done in the
corresponding graph, the one at the bottom.
To modify the bands contained in this range, simply change the position of the slider’s handles
under the graph to adjust the limits of the range.
When a frequency band is selected, it turns red (or orange for the Mid range and yellow for the
High range).
2. Next to the graph, you can see the average value calculated in real-time from the levels of the
frequency bands in the interval. This value will later be used to control the parameters that you
have enslaved to the Mid range.
If it’s too low or too high, you can adjust its level with the slider on its right.
Notes: A frequency range (Bass, Mid, High) cannot be discontinuous. However, the three ranges don’t have
to cover the full spectrum and can overlap.
As we did for the tempo before, for this example we’re going to describe the behavior of the depth of the
repeat effect if we make it sound-reactive.
To do so, use the drop-down menu to select the desired range. You’ll notice that you can choose a start and
an end value. This means that the depth value of the effect will vary in this interval.
As we’ve said previously, the average value for a range is calculated in real-time and used as a live input for
the parameter. You can always see the calculated values for each range in the audio analysis module (and
remember you can adjust their levels in the settings).
At a specific instant, if the average value is equal to zero, the depth will be equal to zero too; then if it
changes to 50% of the max value, the depth will change to 30 (middle of the defined interval) for example.
Simply put, in this case, the higher the level of bass, the higher the depth value.
Note: if you switch the slider buttons, it will invert the variation. In this case, in the previous example, the
array would go from 60 to 0 so the higher the level of bass, the lower the depth value.
For more details on effects parameters, see the dedicated section on the subject.
You can see a video example of effect-sound coordination in our online video tutorial.
The sequencer
You can divide your projects in sequences. They are like scenes in your mapping that allow you to create
variety in your mapping, organized in a timeline called the sequencer. Playback of the arranged sequences
can later be automated for a performance.
This chapter deals with how to manage sequences in the timeline, their settings and playback, as well as
their content.
You can also right-click on any sequence and select "Insert sequence" in the context menu. This command
will add a new sequence before the one you right-clicked on.
The user right-clicked on sequence 1 and selected “Insert sequence”, so sequence 2 has been added right after.
Note: it is not possible to copy or import sequences from other projects at the moment.
Sequence 3 is selected.
You can select multiple sequences at the same time by holding [CTRL/Cmd] while clicking on the desired
sequences one-by-one. You can also select an array by clicking on a sequence and, while holding [Shift],
clicking on the last one in the desired interval (it will automatically select the ones in between).
Note: the active sequence in your work area is the one with the yellow header.
The active sequence is always the one with the yellow title bar, selected in your timeline. It can be different
than the one that is being played and displayed in your projection. More detail on the subject will be given in
the “Playback options” section.
Duplicating sequences
You can duplicate a sequence by right-clicking on it and directly selecting "Duplicate" in the context menu
(or hitting the associated shortcut [CTRL/Cmd + D]). You can also use "Copy" then "Paste" (or the associated
shortcuts [CTRL/Cmd + C] and [CTRL/Cmd + V]).
Both actions will put the copied sequence in last position in the timeline.
Note: you can only duplicate one sequence at a time with the right-click, but you can duplicate a selection
with the shortcut.
Deleting sequences
You can delete a sequence by right-clicking on it and selecting “Delete” in the context menu. Or you can
simply delete one or multiple selected sequences by clicking on the trashcan icon at the bottom of the
sequencer, or by hitting [Delete/Backspace].
Naming sequences
To name a sequence, just double-click on its header, on the part where it says "name". The text will be
highlighted in blue, which means you can now write the title you want. Press enter or click somewhere else
in the software to validate it.
Deactivating sequences
To deactivate a sequence, just click on the toggle button in its title bar. If you want to deactivate sequences
in bulk, make a selection and hit the toggle button of any the selected sequences (it will automatically
deactivate the others).
The point of deactivating sequences is that they won’t be played in your timeline but still exist, so you can
recover them whenever you want. You can recognize deactivated sequences because they are tinted in gray
and their toggle button is gray.
Note: if you want to move sequences in bulk, make a selection and grab the top-left area of any the selected
sequences (it will automatically grab the others simultaneously).
Time mode: the duration of sequences will be expressed in hours : minutes : seconds.
Tempo mode: the duration of sequences will be expressed in beats. The duration of a beat is set by
the tempo (number of beats per minute) of the project.
You can easily switch between the two modes by clicking on the corresponding icons below the timeline
(metronome for tempo mode and clock for time mode).
Note: the mode is applied to the whole timeline: you can’t have sequences in time mode and others in
tempo mode at the same time.
A popup window will appear, asking you if you want to apply this default duration to all the sequences in
your timeline. If you select ”yes”, all sequences will change to this default duration, whereas if you select
“no”, the existing sequences won’t be altered and only new sequences will be created with this default
duration.
Adding transitions
You can add transition effects between sequences. They apply to the whole output, but will only be
displayed when the playback of the timeline is on (see “Playback options” below).
For each sequence, you can add one transition at the beginning and one at the end. You’ll find these
animations in the corresponding effects panel, on the right of the interface.
For more information about how to manage them, please consult “Adding effects”.
You can run your whole project with the playback options, so that your activated sequences are played
automatically in a specific order, with the duration settings and transitions you have defined.
In ordered mode, once the playback reaches the end of the last sequence in your timeline, the playing
resumes from the beginning of the first sequence in your timeline without any pause.
Note: remember that deactivated sequences can’t be played, they will be skipped during playback.
● pauses the playback of the sequences and creates a cue point on the current measure. Once
you click on it, it will turn back into a play button.
● stops the playback of the sequences and erases any pause cue point. (Also resets the timer to
zero.)
● skips playing to the previous/next sequence in the playback order. If playback is paused, it
moves the cue point at the beginning of the previous/next sequence.
● shuffles the playing order of the sequences. Click on it once again to revert back to the
playing order you set in your timeline.
Controls on sequences
● starts playing the sequences one-by-one, from the beginning of the sequence related to this
button. (It doesn’t take the pause cue point into account.) Once you click on it, it will turn into a
pause button.
Note: you can use this button without having to select the sequence you want to play.
● pauses the playback of the sequences and creates a cue point on the current measure. Once
you click on it, it will turn back into a play button. (This button acts like the pause button in the
playback bar.)
● activates the repeat of the related sequence. When the playback reaches the end of this
sequence, it starts back from its beginning and the sequence is looped infinitely. When off, the icon
is grey and it turns yellow when activated.
In order to accomplish this beat-matching, when you start playing a sequence in beat mode, its launch might
have to be delayed in order for it to fall perfectly in sync with the timeline of other devices. When this
happens, you’ll see the Play button on the sequence blink while it’s waiting to start.
Note: in “time mode”, only the tempo is synchronized, so this doesn’t change the launch of sequences.
In this case, the sequence displayed in your work area and the one in the projection are the same. But it can
get tricky when playback is activated: when a sequence is being played or is paused, it automatically
becomes the projected sequence, even if it is not the one that is active in your work area.
Here’s an example:
Sequence 0 is active, it has a yellow title bar and is displayed in the work area. Sequence 1 is in playback so it is projected.
In the picture, you can notice that the content in the projection window and the content in the work area are
not the same. This is due to the fact that playback is activated and sequence 1 is being played, whereas it is
sequence 0 that is selected. That means that sequence 1 is projected, but sequence 0 is active in your work
area so you can modify its content and parameters.
Be careful, it can be tricky to make changes that apply to a sequence that is not projected, because you
won’t see the results.
Note: The only way your modifications alter all sequences is if they apply to dependent entities. We’ll talk
more about the concept of dependency between sequences in the next section, which broaches the subject
of the sequencer modes.
• Summary
We could summarize the concept of projected sequence vs. active sequence the following way:
Sequence whose content is displayed in your work area. You can act on
Active sequence
this content. Always the one that is selected, with the yellow title bar.
2 situations:
Projected sequence
● There are no playback options activated (playback is stopped): the
= projected sequence is inevitably the active (selected) one.
Active sequence ● Playback is activated: the sequence that is played or paused is
also selected and thus both projected and active.
But you might not want to have completely different sequences every time. That’s why there are different
sequencer modes, in which only specific elements of your mapping vary between sequences.
You can choose a suitable sequencer mode for your project by customizing the sequencer settings.
In this window, you can select which entities are going to be independent throughout your sequences. By
“independent”, we mean that they won’t be linked, i.e. if you alter the characteristics of an independent
entity in one sequence, the modifications won’t apply to other sequences.
You can define independencies for features relative to faces and players. To declare an entity as
“independent”, just tick the corresponding box in the table.
Box ticked = independent Box ticked in gray = necessarily independent Box unticked = dependent
The following paragraphs describe all the different features in the sequencer settings.
On the opposite, if you define them as “independent”, you’ll be able to have different shapes in your
sequences.
Dependent:
sequence 1 sequence 2
Independent:
sequence 1 sequence 2
Note: making your shapes position independent automatically defines all the other features as independent
as well. You’ll understand why when we define the next items.
The mask state of a face follows the dependency of the faces position, i.e. if it is set on “dependent”,
a face that is masked in one sequence will be masked in all others.
In the same spirit, the lock/unlock state of a shape follows the dependency of its position.
However, the hide/show state of a shape is always independent, so if you hide a shape in a
sequence, it won’t be hidden elsewhere (unless you also hide it of course). Small trick: this way,
even if you set your shapes’ position as dependent so they are the same throughout your whole
project, this allows you to make small exceptions and hide some shapes in some sequences!
Indeed, this item relates to the group assignment of your shapes. When groups are dependent, each shape
will have the same group assignment in all sequences and will also be arranged in the same order.
On the contrary, independent groups let you set a different assignment for the same shape in different
sequences. If one of the shapes’ position item is independent, then groups are inevitably independent too.
(Obviously, it would be difficult to keep shapes assignments if the shapes are not the same.)
Dependent:
sequence 1 sequence 2
Independent:
sequence 1 sequence 2
Note: “dependent groups” only means that the group assignments, the display modes for players and the
order of shapes are reproduced throughout your whole project, it doesn’t mean that the effects in a group
are the same in every sequence. We’ll see some examples in the next paragraphs.
Inversely, if it is set as independent, you can make players display different medias in each sequence.
Inversely, if it is set as independent, you can set different custom centers for the same faces in each
sequence.
• Default mode
In the default mode, only group assignments are independent. It is pretty useful if you know the outline
sketch of your mapping will be the same throughout your whole project. With this mode, when you need to
adjust your shapes on your structure for example, the modifications will be applied in every sequence.
In short, this mode allows you to vary the visual effects and where they appear in your mapping (sections
change). You can also manage the superposition order differently throughout sequence. If you want to go
further in the variety of content, you can also tick “media” and “center”.
Note: if you have made changes, you can revert back to this default mode by clicking on the Reset button.
• Everything independent
Freedom! In this situation, everything is independent, you can have completely different-looking sequences.
But be careful, this mode usually requires some anticipation: if at some point you realize that a shape you’re
using in every sequence needs some edition, you’ll have to edit it manually in all sequences one by one!
Also, when you create a new sequence, it will be completely empty. So if you don’t want to start from scratch
every time, you need to retrieve shapes from other sequences by copying and pasting them, or even by
duplicating the sequence.
• Everything dependent
Setting all entities as “dependent” doesn’t mean all your sequences will look the same. Indeed, even if your
layer list is identical in every sequence, the effects will be different: although group assignments can be
dependent, the effects they contain from the built-in library are always independent, so you still have some
flexibility. In other words, this mode is useful if you only want the visual effects to vary in your mapping.
● First, you have a face that outlines your wall in a group, with a player containing a video displayed
inside. This video acts as the background and will be played throughout your whole performance
(since players are set as “media dependent”)
● Then you want to add visual effects on the widows, so you draw some faces that fit them and put
them in a group above.
Now, with this sequencer mode, this structure will be repeated in all your sequences, but you’ll still be able
to vary the effects in the windows of the building.
These notes will be activated depending on your choices in the table (to remind you that you can’t have
independent faces and dependent groups for example).
We also put a reminder of the definitions of players and faces, which you can display by clicking on the info
icon.
• Pop-up warnings
If you already have added shapes in multiple sequences, your actions in the sequencer settings can alter
your content. If it is the case, don’t worry, a pop-up window will appear before any modification is
performed when you try to validate new sequencer settings.
In this window, the modifications that are about to be applied to the content of your project are explained to
you. You then have the choice to cancel the changes of sequencer settings, apply them, or save your project
with the previous settings and apply the changes after. This last option allows you to revert back to the
actual version of your project afterwards, without the settings modifications, if they do not satisfy you.
Overall, it is better to set the sequencer mode at the very beginning of your creation process, so that you
don’t have to face the kind of decisions that can alter your whole project later. This requires some
anticipation on your part, but we advise you to take the time to choose a proper mode, so that you are set
once and for all.
The projection
All VGA, DVI or HDMI projectors are compatible with HeavyM. To learn more about how to choose the best
projector for your project and how to set it up properly, you can consult our HeavyM Tips on our website.
In HeavyM, you are provided with multiple tools to preview or project your mapping. This chapter describes
in detail the different options available and gives you instructions on how to manage them.
Before continuing, make sure you have properly configured the display settings on your computer, as
described in the related chapter of this manual.
Display options
Windowed
The windowed projection option allows you to launch the projection of your mapping in a separate window.
Seeing as the title bar doesn’t go away, this projection option mostly acts as a preview mode for your
mapping project.
First method
Simply select Projection → Windowed.
Second method**
1. Use the projector icon in the toolbar .
2. This will open a settings window allowing you to choose the windowed option as well as set a size
for the projection window before opening it.
The window behaves like a classic window, so you can move it around by dragging it from its title bar and
you can resize it by pulling at its sides or corners. For precise resizing and positioning, use a Custom output
instead and change the projection parameters.
Note: when you resize the projection window, it doesn’t scale the mapping with it. To resize your shapes,
use the dedicated feature in the projection parameters.
Fullscreen
The fullscreen projection option allows you to launch the projection of your mapping in fullscreen, without a
title bar, on a screen of your choice. The most common use case would be to have HeavyM open on your
computer and your mapping projected by your video projector.
First method
1. Select Projection → Fullscreen. A list of the available screens will unfold.
2. Click on the desired screen and the fullscreen projection will be launched on this particular screen.
Second method**
1. Use the projector icon in the upper toolbar . This will open the projection setup window.
2. Choose the fullscreen option as well as the screen to use by clicking on its corresponding grey
rectangle in the dark area. You’ll see the rectangle turn yellow when the screen is selected.
Note: if multiple screens are available, you can select several ones to start a multi-projection (see
next section).
3. Click on the Ok button once you’ve made your choice and the fullscreen projection will be launched.
Note: the fullscreen projection automatically adapts to the resolution of your screen. If you want to fine-
tune its position and size because it doesn’t fit like you want it to, use the Custom settings instead.
• Screen numbering
In both methods, the numbering of the screens in HeavyM follows the order defined by your OS, i.e. “Desk”
is the display considered as the primary one by Windows or Mac.
You can change the arrangement of your displays in System preferences → Displays → Arrangement (for
Mac OS) or Settings → System → Display, under Multiple displays (in Windows).
Note: if you’re having trouble launching this type of projection on a desired screen, you can check that you
have properly configured your display settings, as described in “Computer settings”.
Custom…
The custom option launches a projection without a title bar and opens up the projection parameters at the
same time, so you can set a specific output position and resolution and save it with your project. See below.
Multi-projection**
You might need to use several projectors at once in order to project your mapping properly. For instance,
this can happen if you need to cover multiples angles of a 3D structure, or if the throw ratio of one projector
is too small for the surface you want to project on.
● The first one consists in connecting the output of the first projector (the one connected to your
computer) to the input of a second one. By doing this, the same animation will be projected on all
the projectors that you’ve connected.
● You can also use an external multi-display adapter that allows to connect several monitors to the
same video output port of your computer. If you do this, please check the user guide of your device
to setup your display and make it work with your system.
It may happen that such devices don’t recognize one of your projector in the first place. You may be
using a higher display resolution that what your graphics hardware supports. In this case, lowering
your display resolution usually works.
2. Choose the fullscreen option as well as the screens to use by clicking on their corresponding grey
rectangles in the dark area. You’ll see the rectangles turn yellow when the screens are selected.
3. Click on the Ok button once you have made your choice and the fullscreen projections will be
launched. In your work area, new projection areas will be created, corresponding to your different
screens or projectors.
The arrangement of the zones in the HeavyM work area follows the arrangement of your displays, defined in
the settings of your computer. You can change it in System preferences → Displays → Arrangement (for
Mac OS) or Settings → System → Display, under “Multiple displays” (in Windows).
Since each zone represents a projection, what you draw in one area will only be displayed in the related
projection. In the example below, the content in the area on the left is displayed only by the first projector
and the content in the area on the right is displayed only by the second projector.
The squirrel is mapped by the projector on the left and the cat is mapped by the projector on the right. You can see that there are
two projection areas in HeavyM.
While HeavyM doesn’t support it directly at the moment, we can give you a few tips to create the illusion of
edge blending when using multiple projectors.
We’re going to take the example of a real situation in order to illustrate our explanation. Here’s a structure
we want to project on:
The problem is, it’s huge, and we need two projectors to fully cover its surface. So, the projectors will be put
side by side so that they each cover one half of the structure.
The first method would be to position them so that their projection zones are right next to each other,
without any space between them. Our mapping would have look like this:
There are many drawbacks with this method. First, trying to snap the two projection zones like this will be
very difficult in reality.
Then, even if we decided to overlap them a bit, cutting the mapping in half like this would mean creating
different polygons for a same face in the real structure. This is probably not the best idea because then
configuring the effects so that they appear seamless in a single face would be difficult.
In this case, a better idea would be to overlap the projection areas a bit, and create two separate content
zones in HeavyM (that don’t overlap), so as not to cut real faces in multiple parts. It could look like this:
This is also valid if you’re using players. Try not to cut them in half in two different projection zones!
One thing that could show this is a multiple projection is if the projectors don’t have a good contrast. Indeed,
in the stripe where the projection areas are overlapping, the brightness of the black part of the projection
would be doubled, so if it’s not dark enough you’ll see a zone brighter than the rest. Obviously, if your
projectors don’t have the same quality, brightness or color rendering, it could also look weird.
Note: if you open a project that was created using multiple projection areas when you only have one screen,
don’t worry, the content of your secondary projection areas won’t be erased, it will still appear in your work
area.
Output as background**
When performing, you might not be able to see the result of your projection on your structure, because it is
not oriented in your line of vision. The output as background feature is there to provide you with a live
feedback. When activated, you’ll be able to see the output displayed as the background of the projection
area in HeavyM, exactly as it looks in your projection, as pictured below.
To turn it on, select Output as background in the Options menu. Just untick the option when you want to
turn it off.
Note: be careful, when in playback mode, the sequence whose content is editable in your work area and the
one that is displayed in the background might not be same one. See “Active sequence vs. projected
sequence”.
Projection settings
Position and size parameters
• Overview of the parameters window
The custom parameters for the projection are accessible from the menu bar, in Projection → Custom…. This
will open a projection window, without a title bar, as well as the following window:
In this window, you can find options to change the position and size of the projection, as well as the size of
your mapping shapes. When you apply and save custom settings, they are saved with your project. That
way, when you open the same project again, the Projection → Custom… option will use these settings by
default.
You can see the changes being applied directly to the output and adjust the coordinates accordingly. Click
on Save & Close to save these changes with your project, or Cancel to go back to the previous state, i.e. the
position of the projection before any changes were made in the parameters window. (The Reset button
allows you to go back to the resolution and position automatically calculated for Fullscreen → 1.)
Note: the coordinates you enter are only valid for the Custom projection of the current project. Fullscreen
or Windowed projections are always opened in a default position.
This feature is especially helpful if you are having trouble with a fullscreen projection that doesn’t adapt
correctly to your display.
In the example below, there are two displays and the projection should be in fullscreen in the second screen
(on the right). You can see it hasn’t opened properly and is overlapping on both screens.
It’s an issue that has been experienced by Microsoft Surface users in particular, and it is due to a dpi (dots
per inches) difference between the displays. It can be corrected by adjusting the X-coordinate of the
projection.
Note: when you adjust the position of the output, the shapes in your mapping keep their relative position in
the projection.
• Resizing
Resizing the output**
You can set the size of the Custom projection in the Resizing section of the parameters window, under
Output. To help you, the size of the currently open projection window is indicated.
You can set the width and height of the projection window. Simply put in new values in the associated input
fields or use the up and down arrows to fine-tune the size. You can also choose a size by clicking on the little
grey down arrow next to the height input field, which will reveal a drop-down list of preset resolutions.
The changes won’t be applied directly, you have to click on the Resize button to apply them and see the
result. Then, click on Save & Close to save these changes with your project, or Cancel to go back to the
previous state, i.e. the resolution of the projection before any changes were made in the parameters
window. (The Reset button allows you to go back to the resolution and coordinates automatically calculated
for Fullscreen → 1.)
Note: the resolution you enter is only valid for the Custom projection of the current project. A Fullscreen
projection always opens in an automatically calculated resolution and a Windowed projection opens with
the resolution of the current work area if you don’t set a specific one (800x600 for new projects).
In the example below, you can see a fullscreen projection that has been downsized and the background of
the computer screen is now visible.
Note: when you adjust the size of the output, the size of the shapes in your mapping doesn’t change. The
shapes are pinned to the top-left corner of the projection output, i.e. they keep their relative position to the
top and left edges.
Resizing shapes
In your work area, you can resize all your shapes by selecting them and using the [Alt] key and your mouse
or the up and down arrows, as you’ve learned in “Editing faces”. But this can be tricky when you want a
precise scaling of all the content in your mapping that fits a new specific output resolution, for example if
you have just resized the projection, and you want to also adapt its content to its new size and aspect ratio.
In this case, in order to resize your shapes, you have to refer to the Resize section of the projection
parameters window, under Shapes.
You have two sizes to state: the one from which you wish to resize and the one you wish to resize the
content to, i.e. you’ve created your mapping with a certain resolution (Resize from:) and now you want it to
fit a new resolution (To:).
The concept can be a bit difficult to grasp so here are a couple of use cases:
● For instance, this can happen if you have to change the resolution of the projector during your
installation.
Let’s say we’re in this situation: you have created a mapping under real conditions, with your
projector and structure in the right place, etc. Suddenly, you realize that your projection doesn’t
look very clean but that you can increase the resolution of your projector.
Once you do it, the resolution looks perfect but there’s something wrong: the shapes don’t fit your
structure anymore! So, obviously, you start to panic: “Oh my god I’m gonna have to redo
everything!”
Noooo, don’t worry, that’s what the resize feature is for! The only things that you have to find out
are the previous resolution of the projector and the new one. Then, input this info in the resize
window like this:
• To: the new resolution of the projector. (Hint: it is the “Current projection size” indicated at the
top of the resizing section!)
● Now let’s imagine a new situation. You have created your mapping in a projection window to
preview it on your computer and you’ve also used a picture of the real installation as background in
your work area to put your shapes in the right places.
Here’s an installation:
On the left, the projector has been positioned and you can see the area that is covers.
Since we’re working on a single computer screen, we have opened just a small output window to
preview our mapping. Then we’ve adjusted our picture in the background with the mark of the
projector and the size of the projection area in HeavyM so that they fit.
Then we’ve created the outline of our mapping and all its content.
Once we’ll launch a fullscreen output to project on our real structure, our mapping will look quite
similar to it, but it won’t have the same scale at all. That’s because the projection has been resized
automatically when we opened it in fullscreen, but not our shapes!
That’s where the resize feature can help us. In order to make our shapes fit to the new projection
size, we simply have to input the following info:
• Resize from: the size of the windowed projection we had on your computer
• To: the size of the fullscreen projection from your projector (which is indicated as the “Current
projection size” in the parameters window)
Note: considering that your picture probably doesn’t reflect your installation 100% accurately, you
might have to make some adjustments. You can then use the arrow keys to adjust the position of
your shapes, or hold [Alt] at the same time to resize them.
Performance modes
In HeavyM 1.7, we have introduced a new performance mode selection feature. It is intended to help you
get the best out of HeavyM in terms of memory management, depending on the type of project you’re
creating and the capacity of your graphics hardware.
When you switch between modes, you’ll be prompted to restart the projection if one was open:
If you click on “Restart Now”, the new performance mode will be applied and your projection window will
close and reopen automatically (with the same size and position, don’t worry). On the other hand, if you click
on “Cancel”, the mode change won’t be applied.
You’ll notice that there are two modes, Normal and High, and that HeavyM applies a default choice between
these two. We’re going to explain the differences between these modes and what they entail in the following
paragraphs.
Note: if you’re short on time and simply want to get the hang of the basics, you can read the summary in the
last paragraph of this section.
Normal mode
Up until version 1.6, the Normal mode was the standard performance mode in HeavyM.
In this mode, HeavyM only loads the content of one sequence at a time in the memory, that of the sequence
that is being displayed in the output. This is what allows HeavyM to run on computers that don’t have a lot
of memory resource. And even if you have a pretty nice configuration, it’s also a good way to manage
memory capacity when you have a heavy project with a lot of effects and sequences.
Unfortunately, if a sequence has a lot of content, it will take some time to load it and this can cause a
temporary drop in performance. Indeed, since only one sequence is loaded at a time, HeavyM has to empty
the memory and load the new content every time you switch to a different sequence. That’s why there can
be some small freezes in the display when a new sequence starts playing.
Some of you have experienced them, especially in version 1.6, that’s why we’ve introduced a new mode that
can help correct this issues.
High mode
In this mode, HeavyM loads and keeps all the sequences of a project in the memory at once. That way,
there’s no need to load a sequence again every time you switch, so there’s no lag between two sequences.
But this means keeping a lot of data in memory, which can cause issues if your graphics hardware can’t
support it. And even if you have a pretty good configuration, if you have a heavy project with a lot of effects
and sequences it could still be too much.
● If HeavyM detects a dedicated graphics card (NVIDIA or ATI), the high-performance mode is put as
default.
● If not, the normal mode is put as default, because we assume that you only have an integrated
graphics card.
However, HeavyM can only detect if you’re using a dedicated graphics card if a projection is open and if it is
running on this particular card. If you see that HeavyM puts “Normal” as your default mode whereas you
know you have a dedicated graphics card, it’s because HeavyM is not running on it.
So, in this case, please refer to the section of this manual detailing how to make sure HeavyM is running on
the 3D graphics card. Using the proper graphics card will also help improve performance!
However, if you try to force the high-performance mode while it’s not the default one, you’ll get the following
warning:
This message is here to remind you that the high-performance mode is rather intended for users with a
dedicated graphics card. Indeed, as we’ve said before, a lot of memory can be required to load all sequences
and if there’s not enough memory available, it will overload and HeavyM could crash.
Note: the available memory also depends on how greedy other programs you might be using at the same
time are.
Don’t worry, it won’t affect other settings and features of the software, or the resolution of your projection
for example.
Note: the performance mode selection is not saved within project files, it is a global setting in the software,
so it is effective in every project you open.
• Let’s sum it up
If we were to summarize the difference between both modes, we could say that you should remember this:
● The Normal mode is rather intended for users that only have an integrated graphics card in their
computer, or for heavy projects that contain a lot of effects and sequences. However, you might
experience some freezes and lags between sequences.
● The High mode is rather intended for users that have a dedicated graphics card in their computer.
It will help reduce freezes and lags you might have experienced between sequences. However, if
you use this mode with a project that has more content than what your graphics card can support,
it will overload and HeavyM won’t work properly.
So, if you’re having lags, you can try to switch the mode. However, if you do so, we advise you to do some
tests with your project before a performance, especially if you’re using HeavyM in a professional setting.
Better be safe than sorry!
Other options
Clip mode
Introduced in HeavyM 1.7, the clip mode, as its name suggests, clips the visual effects that overflow out of
your faces (it doesn’t apply to players, post shaders and transition effects).
Obviously, the effects are always displayed within your shapes, but there can be an overflow due to the
motion of some effects. For example, this can happen if you are using a custom center that is outside of
your shapes, or with the rotation effect.
On the left, the clip mode is off, so some effects overflow. On the right, it is on.
Note: if the effects of a group overflow over the faces of another group, the content inside these faces won’t
be cropped. In the example below, the face on the left doesn’t have any effect on apart from the blue
border, but you can still see some content inside of it.
This is the overflow from the radial glow effect in the group of faces on the right (with the white borders).
To activate the Clip mode, tick the option in the Projection menu.
Black output
Accessible from Projection → Black Output or with the shortcut [CTRL/Cmd + Shift + B], the black output
option allows you to switch your projection to a complete black screen.
When your projection is blacked out, your project is still running behind (you can see that the timeline is
playing in the interface). This is a quick way to have a break in your performance, without having to switch
off the projector or black out your whole computer screen.
In order to display your mapping again, just untick the option in the menu, or hit the shortcut once again.
Importing content
Opening a project
You have a few options to open a project in HeavyM (all accessible from the welcome window too). You can:
● Open an existing project (.hm file) by browsing your files, from File → Open…
● Re-open one of the last five projects you have opened, from File → Open recent project…
● Create a new empty project, from File → New Project. The default title for new files is Untitled.hm.
● Create a new project from an example, from File → New Project from Example… These examples
are projects created for you by the HeavyM team, to help you discover new possibilities.
You shouldn’t have compatibility issues when opening projects created with older versions, although you
might need to make some small tweaks in order to get exactly the same result. For example, the display
settings for players have changed between versions 1.10 and 1.11, so you’ll probably have to adjust them.
On the opposite, there’s a high probability opening a 1.11 project with an older version won’t work.
Note: if you open a project containing media players on a different computer, you’ll have to re-specify the
paths for the media files.
Importing a media
In the File menu, there is an option to add a media (photo, video or GIF) to your project. It is located at File
→ Import media….
With this option, a new player is created and the imported media is directly added to it. For other types of
sources and methods to import content in a player, see “Changing the content of a player”.
This feature is accessible from the Parameters tab of the MIDI Controls window, under “Save or Load
Controls”. MIDI Controls files are saved with the .midihm extension.
Now, when you use this controller again, simply click on “Load Midi Controls” (still in the Parameters tab) to
browse your documents and load the associated file. Then you’ll retrieve all your saved assignments, but be
careful, because they will replace any assignments you had made in the current window.
Note: once you have loaded a MIDI Controls file, you can change the assignments, but the backup file won’t
be updated automatically. You have to save a new file or override the previous one.
For more information on using MIDI with HeavyM, see “MIDI Controls**”.
Exporting a project
Saving a .hm file
When you save a HeavyM project with the Save or Save as command (from the File menu), it creates a .hm
file. The default filename is Untitled.hm. This is also the case for projects created from an example: it will
create a new file so there’s no overwriting and the original examples are intact.
When an active project has some unsaved changes (or if it is new and has never been saved), you’ll notice an
asterisk (*) symbol next to its name in the title bar (Windows), or a black dot (instead of a cross) on the quit
button (Mac).
Note: this project will only be useful in HeavyM, you can’t use it directly with other mapping programs.
The default filename for this image is HM_Export.png and its resolution will be that of your output. You can
check your current projection size in Projection → Export as a video**.
Once you have placed your projector and created the outline or your structure, this feature will let you save
an exact pattern of your structure. It will be more precise than a picture taken from your projector for
example, because it takes into account all the deformations due to the projection and your volume’s shape.
This can be useful if you create animations in Adobe After Effects or if you need a mask in Resolume for
example.
Video rendering**
From version 1.6.2 and later, you can export your output as a video file. This will respect the timeline of your
project and take into account all of its content. However, this feature doesn’t support live feeds, so if you
have a syphon/spout or webcam source, it will probably look quite choppy.
Note: you need to have an active output window to use this feature.
• Export Range
You can define which part of your project you want to be exported, you don’t have to render the whole
timeline.
If you select “All”, your whole timeline will be included in the export and if you select “Sequences”, you can
define a specific range.
Note: if there are deactivated sequences in the range you set, they will be skipped and won’t be included in
the export.
• Render Settings
● Framerate: this variable represents the number of frames per second in your video. You can set a
value between 25 and 60 fps.
● Resolution: this item lets you choose the resolution of your video export. You can set a custom one
or choose from a list of presets. If you select a resolution that is different to that of your projection,
a resize of the whole output (including your shapes) will be performed, so you might lose the aspect
ratio.
• File Settings
● Save As: this item lets you browse your folders in order to specify a location to save the video file
to. It is required that you do so before executing the video export. If you haven’t, an error message
“Please choose a file destination.” will be displayed.
While you browse your files, you can also specify a filename. If you don’t, it will be HM_Export by
default.
● Format: this item lets you choose between different video file formats. There are three formats
available: .mp4, .flv, .mov.
● Codec: this item lets you choose between different codecs. The list of possible codecs depends on
the format you chose previously: H.264 and H.265 for .mp4; H.264, H.265 and hap for .mov; H.264
for .flv.
Once you start the export, a popup window will appear to inform you of the progression of the rendering,
sequence by sequence.
You can cancel at any time during the rendering and it will cease the progression and will not create the
video file. But you also have a “stop” option, which ends the rendering and will create a video file only with
the sequences that were rendered before you hit the Stop button.
Controls
This chapter contains information about the ways to control HeavyM by other means than just your mouse.
You’ll learn how to tell HeavyM what to do with your keyboard, MIDI devices or even remote devices.
Keyboard shortcuts
To make your workflow smoother and reduce the number of clicks you have to perform to access some
features, we have implemented some keyboard shortcuts in the software. The following paragraphs list the
shortcuts in HeavyM at the date of publication of this manual.
Note: you can also access the list of software shortcuts for a version from the Controls menu.
General commands
KEY ACTION
[CTRL/Cmd + Z] Undo
[CTRL/Cmd + C] Copy
[CTRL/Cmd + V] Paste
[CTRL/Cmd + X] Cut
[CTRL/Cmd + D] Duplicate
[Delete/Backspace] Delete
Selection commands
KEY ACTION
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] Select a group, n°1 being the one at the bottom of the layer list.
Can be modified in Controls → Keyboard Interface.
Drawing shapes
KEY ACTION
[←] or [ ↑ ] or [→] or [ ↓ ] Move the selection precisely (hold [Shift] for a bigger increment)
[Alt + ↑] or [Alt + ↓] Enlarge or shrink the selection precisely (hold [Shift] for a bigger
increment)
[CTRL + ↑] or [CTRL + ↓] Move the selected shape forward or backward in its group in the
layer list (if possible)
Creative tools
KEY ACTION
Projection
KEY ACTION
You can see the different types of commands you can assign to keys. In the effects section, you can navigate
between the different categories and subcategories by using the tabs, as you would do in the effects panel.
Managing assignments
• Setting assignments
To set a key assignment, click on the input box next to the desired command. It will get a yellow border,
which means that it is selected and you can type on a key to choose it.
When you set an assignment, the box will be filled with the symbol of the key you chose.
By default, only the group selection is already assigned. Indeed, without configuring anything, you can see
that when you are in the interface, if you click on a number from 0 to 9, it will switch the group selection. As
stated in the info text on the window, groups are ordered from back to front (left to right here), so box n°1
corresponds to the group at the bottom of the list, and so on.
Note: if you hit 9, for instance, but you have less than 9 groups in your sequence, it will not change the
current group selection in the software.
• Changing assignments
To change a key assignment, just select its associated box and hit a new key, this will replace the previous
assignment.
Note: you can assign a key that was already associated with another command, but keep in mind that it will
deactivate the previous command assignment automatically without notifying you. Indeed, a single key can’t
be assigned to multiple commands.
You can also choose to reset all keys to their default assignments by using the Reset button in the top-right
corner of the window.
• Forbidden keys
Sometimes, you’ll also notice that HeavyM doesn’t take into account your input when you hit certain keys.
That’s because some keys can’t be assigned, because they are already used by HeavyM. You’ll get an error
message at the bottom of the window if you try to use a forbidden software or system key.
MIDI Controls**
MIDI is the acronym for "Musical Instrument Digital Interface". It's a protocol that is used for
communication between electronic instruments or other digital musical tools.
You can configure a MIDI instrument so that it sends commands to HeavyM. In short, this protocol will allow
you to control some features in HeavyM remotely from a controller connected to your computer.
Since a MIDI controller usually consists of several types of control elements, you have more possibilities
than with a keyboard.
You can see the different types of commands you can trigger. You’ll notice there are three tabs that let you
switch between different sections of the settings window.
In the Effects section, you can navigate between the different categories and subcategories by using the
related icons, as you would do in the effects panel.
Then, in the Controls section, you’ll find sequences, groups and playback options controls.
Finally, in the Parameters section, you’ll find additional settings for your controller and assignments.
Selecting a controller
You can select which controller to connect with HeavyM in the title bar of the settings window.
Click on the little grey down arrow next to “(no device selected)” to see the list of available controllers. Once
you’ve selected one, you’ll see its name appear.
Note: you can check if your controller is properly connected by pressing or turning one of its buttons. If you
see some information appear in the fields of the title bar (like in the screenshot above), it means that
HeavyM is indeed receiving data from your controller.
Managing assignments
• Setting assignments
To set a command assignment, click on the input box next to the desired feature. It will get a yellow border,
which means that it is selected and you can now hit a button, knob or any other sensor on your MIDI
controller to assign it.
When you set an assignment, the box will be filled with the code of the button you chose. Unlike a keyboard,
where keys can only have two statuses (pressed/released) and thus can only be used to activate/deactivate
features, some elements of a MIDI controller will let you control the value of a parameter within a range. For
example, if you assign the thickness of a line effect to a knob, its value will vary within the range of possible
values (0 to 15) when you turn the knob.
In the title bar, you can find some information about the sensor that is being triggered, with the Channel
and Control numbers as well as the Value that it sends.
Note: for the BPM value assignment (in the Controls tab), you also need to specify a minimum and
maximum tempo, to define the range in which the BPM value will vary when you turn the knob on your
controller. For example, since a MIDI controller knob only sends 127 values, you can set an interval of 127
values, so that 1 step when you turn the knob also corresponds to an increase or decrease of 1 BPM in
HeavyM.
Another note: group selection with MIDI works similarly to the process with a keyboard. You can set
assignments for up to 10 groups (numbering starting from the one at the bottom of the layer list).
• Changing assignments
To change a command assignment, just select its associated box and trigger a new control, this will replace
the previous assignment.
Note: you can assign a controller button that was already associated with another command, but keep in
mind that it will deactivate the previous command assignment automatically without notifying you. Indeed, a
single button can’t be assigned to multiple commands.
You can also choose to delete all assignments by using the Reset button in the top-right corner of the
window.
Note: unlike the triggers in the Keyboard Controls, there are no default assignments, since MIDI controllers
are all different.
Another note: the Reset button doesn’t affect the parameters, only assignments.
Parameters
The MIDI controls parameters are in the last tab of the settings window.
• Virtual Port
Virtual ports can be used when you want different applications on the same computer to communicate via
MIDI.
In our case, you can’t use HeavyM as a sender, but you can receive data from other applications or virtual
MIDI devices as MIDI input in HeavyM. For instance, you can use control elements in another software to
command HeavyM.
To activate the virtual port in HeavyM, simply click on the “Open HeavyM virtual port”. If you want an idea
of the possibilities this feature gives you, you can check out our detailed use case example with VDMX in
the next section of this chapter.
• Activation Threshold
There can be different types of buttons on MIDI devices and they don’t always send one value when used.
We’ve already broached the subject, but if you look at the elements of information given in the title bar,
you’ll notice that a simple push-button will send a value of 127 when pressed (and 0 when it’s released). On
the other hand, when you press a piano key or use a slider for example, the value depends on how hard you
press the key or on which value the slider is set (the range of values that can be sent always goes from 0 to
127.)
The activation threshold value allows you to define the minimum value that needs to be sent by control
elements in order to activate the command they are assigned to. For example, if you activate a threshold
value of 127, then a piano key will only trigger a command if it’s pressed to the maximum.
Now, when you use this controller again, simply click on “Load Midi Controls” to browse your documents
and load the associated file and you’ll retrieve all your assignments.
Note: once you have loaded a MIDI Controls file, you can change assignments with the usual method, but
the backup file won’t be updated automatically. You have to save a new file or override the previous one.
Let’s say you want to use a slider in VDMX to control an effect in HeavyM. Here’s how to do so:
2. First, you have to activate the virtual port in HeavyM, by clicking on “Open HeavyM virtual port” in
the Parameters tab of the MIDI Controls window.
3. After this action, the button will say “HeavyM virtual port opened” and you should be able to select
“From VDMX” in the list of available MIDI devices.
4. Now, you need to make your VDMX slider’s value available via MIDI so that HeavyM can receive it as
an input.
For this example we’re going to use a slider that allows us to adjust the value of an effect applied on
a video. (This effect will simply affect the colors in the video.)
Here’s a preview of the original video and its effect settings window in VDMX:
In this VideoOut FX window, click on the value slider (the one labeled Wet/Dry - 0.04) to open its
Slider Inspector and select the “Send” tab.
5. Click on the + icon on the bottom left in order to add an item to the list.
6. At this moment your new item is set to “Not Selected”, so you need to configure it. Click on the list
item to unfold a drop-down list and select MIDI.
After this action, you should see HeavyM appear in the second column of your list item, as its
virtual port is open and VDMX automatically recognizes it.
To sum up, what you just did was to make this VDMX slider’s value available via MIDI for HeavyM.
You can see in the MIDI Sender window that was just opened (pictured above) that your slider now
has a Control Number and a Channel, like any other classic MIDI controller button.
7. Now if you go back to HeavyM, you can assign this slider to a command, the same way you would
do with a normal MIDI controller: select the box associated with the desired action, then move the
slider in VDMX.
You can see that it has been assigned in the box and that its value is being sent to HeavyM in the
title bar. Here, we have assigned it to the value of the plain color effect.
Now everything is set, we can try it out! To give you an idea, we have created a small example.
In the pictures below; on the left is the output of HeavyM. In our project, we have put a simple ellipse shape
with a plain color effect and above it we’re displaying the video from VDMX (via Syphon**) in a player.
Remember, our VDMX slider is both assigned to a video effect in VDMX and to the value of the plain color
effect in HeavyM.
Now we’re going to move this slider. Here are a few screenshots of how it affects the output:
As expected, the value of the VDMX slider affects both the color of our HeavyM shape and the colors in the
video in VDMX at the same time.
Obviously, this is just a simple example, but you can also do this with multiple VDMX control elements at the
same time and thus create a lot of new possibilities of synchronized effects in both programs.
Note: you can also use the same slider to create multiple MIDI controls input and thus affect it to several
commands in HeavyM.
To do so, simply add a second MIDI list item in the Slider Inspector (with different Control and Channel
numbers).
Then select this new list item and assign the slider to another command in HeavyM. Here’s an example with
a Slitscan post shader added to our previous HeavyM project:
So here you can see that the same slider in VDMX controls, at the same time, the video effect in VDMX, the
color of the shape and the value of the Slitscan post shader in HeavyM.
Mind = Blown.
OSC**
OSC is the acronym for "Open Sound Control". It's a protocol that is used for communication between
multimedia devices that is similar to the MIDI protocol, but allows to send bigger data, faster, and through
networks like Wifi and Ethernet.
In short, this protocol will allow you to control some features in HeavyM remotely. The great news is that
there’s no need to connect everything with kilometers of cable, your devices just need to be on the same
network!
Here, we’re going to describe how to control HeavyM with a simple smartphone app. If you’re interested, we
also have a tutorial on how to connect HeavyM with a timeline-based OSC sequencer called Vezér.
Since you won’t be using HeavyM directly on your smartphone, you need to use an app with a special layout,
in order to have a functional user interface, with sliders and buttons, with which you’ll interact. There are
many apps that let you build these control panels or have layout templates.
But creating a layout or customizing a template requires time and some coding. That’s why we have created
a ready-to-use layout for HeavyM that works for the TouchOSC app. This app is available for about $5 (USD)
on Android and iOS devices. (We promise we’re not sponsored by this app.)
Building a layout requires creating the elements of the user interface and assigning HeavyM commands to it.
The complete list of commands is available in the OSC Documentation on our website.
You need to associate actions with buttons, using the HeavyM commands listed in the documentation on
our website. (Again, you can use TouchOSC Editor to do so for example.)
Controls OSC**
156
Note: you can still edit our HeavyM layout with TouchOSC Editor to customize it and adapt it to your project.
The next paragraphs will give specific instructions to help you get set up with the TouchOSC app and
HeavyM.
Note: your devices need to be connected to the same network to communicate, but it doesn’t necessarily
have to be a wireless connection: your smartphone can use the Wifi and your computer can use Ethernet for
example.
• In TouchOSC
These instructions describe the procedure to follow with the Android version of the app. The iOS interface is
slightly different but the actions are similar.
Controls OSC**
157
1. First, you need to import the HeavyM layout. Transfer it to your device and in TouchOSC go to
Layout → Add from File, then browse your files to find the HeavyM layout.
Now if you click on Done in the home page, you should have access to the HeavyM layout.
2. Now you need to configure the connection. Come back to the home page by clicking on the button
with the grey circle on the top-left corner. Then, go to the OSC menu.
In the Host input field, you need to enter your computer’s IP address. You can usually find it under
Settings or System Preferences, in the Network properties.
3. Don’t change the other settings, but keep this menu open because you’ll need some info from it in
the next steps.
• In HeavyM
1. In the Controls menu, select OSC Control. Make sure there is a small tick next to it that indicates it
is activated.
Controls OSC**
158
2. Still in the Controls menu, select Change OSC Settings. This will open a window to let you configure
the connection.
3. Under Osc ports, in Incoming, you need to put the number that is indicated in the Port (outgoing)
field in TouchOSC. Inversely, in Outgoing, type in the number that is indicated in the Port
(incoming) field in TouchOSC.
4. Under Remote Device IP, type in the Local IP Address that is given to you in TouchOSC, in the OSC
page.
Now, go back to the home page in TouchOSC and click on Done. Try to play with some buttons or other
elements and you should see that your actions are replicated in the software (for example, try to change the
tempo value).
There are different tabs in the layout: the first one lets you access sequences, player, tempo and group
selection features and the last five tabs correspond to the five categories of effects you can find in HeavyM.
You’ll see that the operation of these different panels is quite similar to what you are used to in the
software.
Note: if you are having trouble after having followed these instructions, you can consult the TouchOSC
documentation on their website, it is quite thorough and describes procedures with iOS devices, as well as
other advanced features in the app.
Controls OSC**
159
This procedure can also be necessary if you’re using Syphon/Spout** to broadcast a feed between HeavyM
and another software. Indeed, for this to work, both programs have to run on the same graphics card.
Note: the following paragraphs detail the procedure for common graphics card brands, on Windows 10. On
Mac computers, the automatic settings are usually already appropriate. If you really want to force them, you
can use the menu bar app gfxCardStatus.
2. In the Desktop menu of the panel, tick the option “Display GPU Activity Icon in Notification Area”.
Optimizing your computer for better performances Running on the 3D graphics card
160
3. In your notification area, you can now access the GPU Activity panel by clicking on the
corresponding icon.
4. In this panel, you can track the active applications running on your NVIDIA graphics card. Now, try
opening HeavyM and a projection window: if HeavyM_Projection.exe and HeavyM.exe appear in
the list, it means that they are indeed running on your 3D graphics card.
If HeavyM doesn’t appear in this list, follow the instructions in the next paragraph.
b. Forcing the projection and app to run on your NVIDIA graphics card
If you notice that HeavyM is not running on the correct graphics card by default, you have to force it. Here’s
how to do it:
1. In the NVIDIA Control Panel you’ve previously opened, go to 3D Settings → Manage 3D Settings.
Optimizing your computer for better performances Running on the 3D graphics card
161
2. Then, select the Program Settings tab. Under “Select a program to customize”, click on the Add
button.
3. Select HeavyM_Projection.exe in the list or programs and click on “Add Selected Program”.
Note: if Heavym_Projection.exe doesn’t appear in the list, you have to add it from its location by
browsing your files. This location depends on where you chose to install the software, but by
default it’s in C:\Program Files (x86)\HeavyM\HeavyM_Projection. Once you have located the file,
select the executable file and click on Open.
Heavym_Projection.exe should now appear in the list, you can select it and click on “Add selected
program”.
Optimizing your computer for better performances Running on the 3D graphics card
162
4. Under “2. Select the preferred graphics processor for this program:”, set NVIDIA as the preferred
GPU and click on “Apply”.
Note: if you don’t see this drop-down menu, it means no other graphics card is available, your
program can only run with the NVIDIA GPU.
Note: if this hasn’t worked and you still can’t see HeavyM in the GPU activity panel afterwards, you can try
the universal method described further in this chapter.
Optimizing your computer for better performances Running on the 3D graphics card
163
3. Select the Switchable Graphics Application Monitor tab on the left and click on “Add Application”
in the section named “All Applications”.
You’ll have to add HeavyM.exe and HeavyM_Projection.exe from their file location (respectively, by
default in C:\Program Files (x86)\HeavyM and C:\Program Files
(x86)\HeavyM\HeavyM_Projection).
4. Now, in the drop-down menu in the Graphics Settings column, select the High Performance option
for HeavyM and HeavyM_Projection.
Optimizing your computer for better performances Running on the 3D graphics card
164
Universal method
If the previous methods haven’t worked, there’s still a Windows option that might do the trick:
2. There, choose “Classic app” in the drop-down menu and click on “Browse” to specify the location of
HeavyM.exe (usually at C:\Program Files (x86)\HeavyM).
3. Once you have added the app in the list, select it and click on “Options”. In the window that opens
up, you’ll see information about your graphics hardware.
4. Set the graphics preference on the “High performance” option, then save.
Therefore, you need to check the manufacturer’s website for new versions, download them and manually
install them. This usually solves compatibility issues and increases the general performance of your
computer.
You can switch modes in Projection → Performance and everything else you need to know on the subject is
explained in the performance modes section.
Note: for more tips on how to choose the perfect computer for video mapping, you can consult our
dedicated tutorial on the subject.
HeavyM menus
File menu
• New Project [CTRL/Cmd + N]
This opens up a new empty project. You can’t open multiple projects at once so it will replace the active one
if you already had a project open (in this case, a dialog box asking you if you want to save the current project
before switching will appear.)
The default title for new projects is Untitled.hm. When a project as some unsaved changes (or if it new and
has never been saved), you’ll notice an asterisk (*) symbol next to its name in the title bar (Windows), or a
black dot (instead of a cross) on the quit button (Mac).
• Open... [CTRL/Cmd + O]
This item lets you open an existing HeavyM project (a file with the .hm extension). It opens up a dialog box
that allows you to browse your documents in order to find the desired project.
• Save [CTRL/Cmd + S]
This option saves the active project to your disk. If the project hasn’t yet been saved once, the “Save as…”
dialog box will appear (see below). If it has already been saved at least once, it will be saved to the location
you specified the first time.
When a project as some unsaved changes (or if it is new and has never been saved), you’ll notice an asterisk
(*) symbol next to its name in the title bar.
It will also let you specify a name for the file (if you don’t, the file will be saved with the default name
“Untitled.hm”.)
• Import Media…
This option lets you import a media in HeavyM. When you select this item, it opens up a window that lets
you browse your files in order to find the desired media. Once you select it, it will automatically be placed in
a new player. See “Importing a media…”.
• About HeavyM
This item opens a window that lets you know which version of the software you’re using, how many days are
left on your license and gives you access to online information about the HeavyM Team and the company
behind the software as well as the legal notice. It also allows us to thank our awesome Kickstarter backers!
Note: on Mac computers, this section is accessible from the default “HeavyM” app menu instead.
• Quit
This will exit HeavyM. If you have an active project with unsaved changes, a dialog box will appear, asking
you if you want to save before closing the software.
Note: on Mac computers, this section is accessible from the default “HeavyM” app menu instead.
Edit menu
• Undo [CTRL/Cmd + Z]
This will undo your last action. You can undo up to 300 actions.
Note: settings changes are for the most part not “undoable”. The “undo” option mostly apply to the creation
process (creation and deletion of sequences, shapes, group assignments, etc).
• Redo… [CTRL/Cmd + Y]
This will cancel your last “undo”. You can redo up to 300 actions.
Note: this only works if there are no actions between “undo” and “redo”.
• Reset View
This item resets the zoom on the work area to 100%. See “Navigating the interface”.
Tools menu
• Display Cursor
This option activates/deactivates the display of the cursor in your projection. When it’s on, there is a tick next
to it. See “Displaying the cursor”.
• Cursor Settings…
This item opens up a window where you can set the cursor color and thickness. See “Cursor settings”.
• Symmetry
This item lets you perform a symmetry of the faces that you have selected. When you hover over this item,
you’ll see a list develop: those are the four types of symmetry available. Just click on one to execute it. For
more details, see “Performing symmetries”.
Options menu
• Sequencer Modes…
This item opens up the sequencer settings window. See “Choosing a sequencer mode”.
• Display Background
This option activates/deactivates the display of the image you chose as a background in your work area.
When it’s on, there is a tick next to it. See “Displaying an image as background”.
• Background Settings…
This item opens up a window where you can choose the image to use as background and its display
settings. See “Background settings”.
• Output as Background**
This option activates/deactivates the display of your output (what’s in your projection) as a background of
the projection part of your work area. When it’s on, there is a tick next to it. See “Output as background**”.
Controls menu
• Keyboard Shortcuts List
This item opens up a windows with a list of all the keyboard software shortcuts. See “Keyboard shortcuts”.
• Keyboard Interface
This item opens up the keyboard controls settings window. See “Custom keyboard controls”.
• MIDI Interface**
This item opens up the MIDI controls settings window. See “MIDI controls**”.
• OSC Control**
This options activates/deactivates OSC control. When it’s on, there is a tick next to it. See “OSC**”.
• OSC Settings…**
This item opens up a window where you can define OSC ports and remote device IP settings. See “OSC**”.
Projection menu
• Fullscreen
This item allows you to activate the fullscreen projection of your mapping. When you hover over this item,
you’ll see a list develop: those are the available screens where you can display your projection (the
numbering follows that of your OS). Just click on one to launch the projection. See “Fullscreen”. The size and
position of this window can be modified in the parameters menu.
• Windowed
This item allows you to launch the projection of your mapping in a separate window. The size and position
of this window are set in the parameters menu.
• Custom…
This item opens up a projection and a window where you can set the position and resolution of your
projection window for a project, as well as get resize options for your shapes. See “Projection settings”.
• Performance
This item allows you to choose between two performance modes, Normal or High. See “Performance
modes”.
• Clip Mode
This option activates/deactivates the clip mode. When it’s on, there is a tick next to it. See “Clip mode”.
• Export as a Picture
This option allows you to export a screenshot of your output as a .png or .jpeg file. When you select this
item, it opens up a window that requests you to browse your folders in order to choose the location where
the file will be saved and lets you specify a name for it. (The default name is HM_Export.png)
The image will be saved as a .png file by default and its resolution is determined by the projection size you
set in the parameters.
• Export as a Video**
This option allows you to export a video recording of your output. When you select this item, it opens up a
window that requests you to specify the export settings, such as the export range and render and file
settings.
• Close Output
This will close your projection (whether it is windowed or fullscreen).
Help menu
• Welcome Window
This item opens the HeavyM welcome window (the one you get at startup, unless you have disabled it). See
“Starting a new project” to learn about this window.
• Online Tutorials
This opens the Tutorials page on the HeavyM website.
• Online Forum
This opens the Forum page on the HeavyM website.
You might need to use this option if you have recently bought a license upgrade or extension (e.g. with the
auto-renewal system) and you see that it hasn’t been taken into account automatically when you open the
software.
• License Manager
This opens the license manager page on the HeavyM website, where you can consult all your license
information and order details. You’ll need your license key to access it. (This item is not in the Trial edition.)
• Open Logs
This opens the heavym.log file in a text editor. This document is located in Documents/HeavyM/Log if
you’re on Windows and User/Library/Application Support/HeavyM if you’re on Mac.
Troubleshooting
• Nothing happens when I try to launch HeavyM (Windows).
Try to launch HeavyM as admin by right-clicking on the icon or start menu item and selecting “Run as
administrator”. If you encounter this problem regularly, you can set this action by default by checking “Run
this program as administrator” in Properties → Compatibility (from the right-click menu on the HeavyM
app icon).
Please contact the support to report the problem with details about your configuration if it still doesn’t
work.
Note: if you don’t have a license key because you bought HeavyM when there was a login system, you also
need to follow the recovery process mentioned in the last paragraph to get a key.
• I found a bug.
Oups... sorry! Please contact the support to report the problem with details about your configuration, and
join a screenshot if possible.
• HeavyM crashed.
Oups... sorry! Please contact the support to report the problem with details about your configuration, and
join a screenshot if possible.
Troubleshooting
172
Troubleshooting