Tao Presentations is a great sofware allowing to create complex presentations with many dynamic and interactive elements.
A concrete example of this type of documents is the interactive, 3D car configurator, which you can download here. Like any Tao Presentations document, this document is best viewed on a 3D display. This document is illustrated below:
The use of many CSV files (comma-separated values, a common exchange format for spreadsheets) makes it easy to change many aspects of this car configurator, by adding for instance, other car models, colors and options. Simply follow these instructions:
To add or remove cars, simply open the cars.csv file and use the following line template (one line = one car):
NAME;PRICE;IMAGE;BODY 3D MODEL;OTHERS 3D MODEL
In this document, we separated the cars in two components, chassis and body, which makes it possible to apply colors only to the body. You could naturally extend this principle further, for example to show multiple car options.
To add or remove body colors, simply open colors.csv file and use the following line template (one line = one color):
FRENCH NAME;ENGLISH NAME;PRICE;HEXADECIMAL CODE
It is necessary to specify French and English names for each color because the document is bilingual. The hexadecimal code for common colors can be found here.
To add or remove some options, just open options.csv file and use the following template of lines ( one line = one options):
FRENCH NAME;ENGLISH NAME;PRICE;IMAGE
Here are some interesting aspects that this document can teach us:
It is very easy to combine separate files into a presentation thanks to the import primitive.
import "my_file.ddd" // Add a file into the current presentation
Splitting a complex document into smaller files makes it easier to test and manage the smaller components individually.
import "part1.ddd" // First part of the presentation
import "part2.ddd" // Second part of the presentation
import "partN.ddd" // Part N of the presentation
The load_csv primitive, it is possible to load any CSV file and to process each line using a function passed as a parameter. An identical primitive also exists for TSV files. The following example will show only the first column of a three-columns table:
load_csv "my_file.csv", my_function // Load the csv file
my_function c1, c2, c3 ->
text c1 // Show only the first column of each line
It very easy to build a dynamic slide show thanks to the 3D slide show module. To create it, we use the slider primive. This primitive takes two arguments, the total number of elements of the slide show and the name of the function used to display all these elements.
slider 4, my_function // Slide show with 4 elements
We use also the slider_offset primitive in order to set offsets between elements along the (x, y, z) axes. Then we can build a basic slide show with this simple code :
import SlideShow3D // Add the required module
slider_offset 250, 0, 0 // Offset on the x-axis
slider 5, my_function // Display 4 éléments thanks to my_function
my_function N:integer ->
color_hsv N * 20, 0.5, 0.5
sphere 0, 0, 0, 200
key "Right" -> slider_previous // Move slide show backward
key "Left" -> slider_next // Move slide show forward
If you have understood all previous elements, it is very easy to extend the mechanism to create a large number of simple but amazing presentations, such for instance the star map shown here. Just imagine now what you can present in 3D!