Special effects with Thymio II

The films shown in cinemas today are now full of more or less sophisticated special effects. Although most of these effects involve complicated techniques, there are simple effects that can produce interesting results. One of the simplest special effects is to play the video backwards. This example with Thymio II uses this effect.

The short clip below is based on the contrast between a Thymio II which seems to behave normally, and the rest of the world which appears to go backwards.

The idea for this video comes from the excellent clip "forward":

Other robotic videos have been made using the same principle, such as the following for example:

How is it done?

The effect is achieved by filming the robot as it reverses, leaving the rest of the world around it evolving normally. Thus one starts at the end and goes back to the initial situation.

Here is what this video gives at the "place" (note that the sounds are correct with the exception of a few sound effects added to the clip after reversal):

In order to do this in a credible manner and to control the robot properly, a special program was developed so as to be able to control the robot remotely while in the yellow (explorer) mode. One gets the impression that the robot is moving normally but in fact it can be remotely controlled while reversing. Here is the code to do this:

var temp
var rc5_speed_l
var rc5_speed_t
var vmin=-600
var vmax=600

var led_pulse

timer.period[0]=20

sub setmotor
    call math.min(rc5_speed_t, rc5_speed_t, vmax)
    call math.max(rc5_speed_t, rc5_speed_t, vmin)
    call math.min(rc5_speed_l, rc5_speed_l, vmax)
    call math.max(rc5_speed_l, rc5_speed_l, vmin)    
    motor.left.target  = rc5_speed_l + rc5_speed_t
    motor.right.target  = rc5_speed_l - rc5_speed_t

onevent timer0
    #Body color pulse
    led_pulse = led_pulse + 1
    if led_pulse > 0 then
        call leds.top(led_pulse,led_pulse,0)
        if led_pulse > 40 then
            led_pulse = -64
        end
    else 
    temp=-led_pulse/2
    call leds.top(temp, temp, 0)
    end

onevent rc5
    if rc5.command !=0 then
        if rc5.command == 32 then
                if rc5_speed_t!=0 then
                    rc5_speed_t = 0
                else
                    rc5_speed_l = rc5_speed_l+50
                end                    
        elseif rc5.command == 17 then
                rc5_speed_t = -50            
        elseif rc5.command == 33 then
                if rc5_speed_t!=0 then
                    rc5_speed_t = 0
                else
                    rc5_speed_l = rc5_speed_l-50
                end
        elseif rc5.command == 16 then
                rc5_speed_t = 50
        elseif rc5.command == 13 then
                rc5_speed_t = 0
                rc5_speed_l = 0
        end
        rc5.command = 0
        callsub setmotor

    end

Once this film is completed it is played backwards. This is a simple option for the clip in video editing software such as iMovie. For the sound you can add effects or leave the reverse original sound, which works well enough, as in this clip.

To get the final version several versions should made to find out which actions look real when reversed. Good luck with your experiments and feel free to add your video to this page!

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License