
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     config                                                                                   ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; sound = true/false
; debug = true/false

democonfig
{
	sound = true;
	developermode = false;
	song = bauhouse.mp3
	endtime = 270000
	jumptime = 224100
}

timeline
{
	credits 0 17500 10000
	concentric 17500 34700 10000
	trollheim 34700 56000 140014
	globe 52000 86500 4000
	participation 86500 120800 50000
	fivefold 120800 155300 95000
	greetings 129000 151000 511000
	bauhaus 155300 189800 5000
	wovenmesh 189800 224200 5000
	sextuplet 224200 269000	
}


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     effects			                                                                        ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

namespace globe
{
	float fadeinstart = 0
	float fadeinend = 0.1
	range fadeinspeed = 0.001 0.05

	color3 color1 = 0 0 0
	color3 color2 = 0.7 0 0
	color3 color3 = 0 0 0.9 
	color3 color4 = 0.9 0.8 0

	range cameradistance = 2.5 4.5
	range cameramove = 0.3 1.0
	float fov = 45

	range cameratargetdistance = 0.3 1
	range cameratargetmove = 0.1 0.5
}

trigger globechange
{
	74500 1100
	82865 1100
}
trigger globezoom
{
	78636 1000 0.5
	79677 1000 0.6
	80750 1000 0.7
	81809 1000 0.6
	82865 1000 0.4
	83971 1000 0.5
	85128 1000 0.65
}

trigger globesync
{
	59925 35
	60010 85
	60310 70
	60550 80
	69200 1000
	70200 1000
	71200 1000
	73400 1000
	74500 1000
	75600 1000
}

event globefade
{
	time = 72200
	length = 1000
}
event globebackgroundfadein
{
	time = 56000
	length = 9000
}

event globefadeout
{
	time = 85000
	length = 1000
}

namespace credits
{
	int flalala = 340
	
	color3 col1 = 1 0 0
	vector3 pos1 = 4 -1 0
	float sizex1 = -3
	float sizey1 = 1.4
	vector3 movement1 = 0 0 0
	float fadestart1 = 0.1
	float fadeend1 = 0.3

	color3 col2 = 1 1 0
	vector3 pos2 = -0 1 0
	float sizex2 = -3
	float sizey2 = 3	
	vector3 movement2 = 0.0 0 0
	float fadestart2 = 0.2
	float fadeend2 = 0.4

	color3 col3 = 0 0 1
	vector3 pos3 = -2 -1.5 0
	float sizex3 = -3
	float sizey3 = 3	
	vector3 movement3 = 0 0.2 0
	float fadestart3 = 0.3
	float fadeend3 = 0.5

	color3 col4 = 0 0 0
	vector3 pos4 = 5 -2.7 0
	float sizex4 = -8
	float sizey4 = 1	
	vector3 movement4 = 0.2 0 0
	float fadestart4 = 0.3
	float fadeend4 = 0.5
	
	float remove1 = 0.97
	float remove2 = 0.975
	float remove3 = 0.98
	float remove4 = 0.985
	
	float fadeout = 0.85f	
	float muotox = 666
	float muotoy = 400 

}
namespace greetings
{
	float greetstart = 0.0
	float greetend = 1.0
	
	float backgroundfadeinstart = 0.0
	float backgroundfadeinend = 0.03
	float backgroundfadeoutstart = 0.97
	float backgroundfadeoutend = 1.0
	
	float margin_x = 10.f
	float margin_y = 2.f
	float margin_y2 = 8.f
	float scale = 0.4 
	
	int seed = 4595
	float background_split = 0.46
	range background_x = 0.26 0.22
	range background_y = 0.01 0.15

}


namespace concentric
{
	int count = 100
	range piecewidth = 0.01 0.2
	float piecewidthexp = 50.0
	range piecelength = 0.5 1.5
	range piecespeed = -0.02 0.02
	range radius = 1 2.5
	range depth = -1 10
	range energy = 3 6	
	
	vector3 cameracenter = 0 0 -10
	range cameradistance = 1 3
	range cameramove = 1.5 3.4

	vector3 cameratargetcenter = 0 0 0
	range cameratargetdistance = 0.3 1
	range cameratargetmove = 0.1 0.4
	
	vector3 corner1 = -80 50 100
	vector3 corner2 =  80  -4 100
	float backgroundalpha = 0.6;
	float backgroundalpha2 = 1.0f
	

	color3 color1 = 0.7 0 0
	color3 color2 = 0 0 0
	color3 color3 = 0 0 0.9
	color3 color4 = 0.9 0.8 0
}

trigger concentricsync
{
	25492 30
	25592 80
	25872 70
	26000 10
}

event concentricbackgroundfadein
{
	time = 17500
	length = 1000
}

event concentricbackgroundfadeout
{
	time = 34400
	length = 200
}
event concentricfadeout
{
	time = 33100
	length = 1000
}

event concentricdistance
{
	time = 32000
	length = 2100
}

material constructablematerial1
{
	diffuse = 0 0 1
	ambient = 0.2 0.2 0.2
	specular = 0 0 0
	shininess = 50
}

material constructablematerial2
{
	diffuse = 0 0 0
	ambient = 0.2 0.2 0.2
	specular = 0 0 0
	shininess = 50
}

material constructablematerial3
{
	diffuse = 1 1 0
	ambient = 0.2 0.2 0.2
	specular = 0 0 0
	shininess = 50
}
material constructablematerial4
{
	diffuse = 1 0 0
	ambient = 0.2 0.2 0.2
	specular = 0 0 0
	shininess = 50
}


namespace construction
{
	float cameraspeed = 0.1
	float camerarotationspeed = 0.3
	float eventtime = 0.3
	
	float constructable_rotamount = 0.2
	range constructable_speed = 0.1 0.5
	range constructable_growspeed = 0.01 0.04
	range constructable_piecegrowspeed = 0.003 0.01
	
	range constructable_sizex = 0.05 0.10
	range constructable_sizey = 0.05 0.10
	range constructable_sizez = 0.10 0.25
	
	float fogstart = 9.0
	float fogend = 15.4

	color3 color1 = 1 0 0
	color3 color2 = 0 0 0
	color3 color3 = 0 0 1
	color3 color4 = 1 1 0
	
	vector3 lightposition = 0 0 0
	color3 lightdiffuse = 1 1 1
	color3 lightambient = 0.1 0.1 0.1
	color3 lightspecular = 1 1 1
}

event participationfadeout
{
	time = 118000
	length = 2000
}

namespace participation
{
	float participantsize = 1.5
	range subdivisionratio = 0.4 0.6
	range subdivisionsteps = 20 45
	float flatprobability = 0.3
	range fixdistance = 0.001 0.3
	
	range cameradistance = 5 9
	range cameratargetmovement = 1.5 2.5
	range camerapositionmovement = 1.5 4.0
	
	float backgroundwhiteprob = 0.5
	color3 color1 = 1 0 0
	color3 color2 = 0 0 0
	color3 color3 = 0 0 1
	color3 color4 = 1 1 0
	
	int glowiter = 4
	float glowx = 0.01
	float glowy = 0.01
	float glowalpha = 0.95
	float glowexp = 1.4
}
event participationbackground
{
	time = 100000
	length = 10000
}
trigger participationsync
{
	90800 1000 
	99300 1000
	108000 1000
	116500 1000	
}

trigger participationsync2
{
	92708 2000
	101248 2000
	109919 2000
	116500 2000
}

event pentatwist
{
	time = 145000
	length = 10000

}
trigger pentasync
{
	128961 800
	137683 800
	146224 800
}

trigger pentasyncdrum
{
	151097 100
	152125 100
	153195 100
	153735 100
	154256 100
}

namespace fivefold
{
	range camerapositionmovemen	t = 0 0
	range cameratargetmovement = 0 0
	range camerarotation = 20 20
	float effectspeed = 0.025
	float pentaend = 0.85
	color3 color1 = 1 0 0
	color3 color2 = 0 0 0
	color3 color3 = 0 0 0
	color3 color4 = 1 1 0
}

namespace sextuplet
{
	int seed = 103591;
	float camerafollowspeed = 1
	float cameraz = -60
	float camerazwobblespeed = 10
	float camerazwobble = 20
	
	int camerasplinepoints = 100
	float cameraspeed = 12.0
	vector3 camerabasicdirection = 2 0 0
	
	float fadeoutz = -20
	float fadeoutspeed = 5.2

	float shadow_z = 5.f
	range hexfadespeed = 0.01 0.04
	float hexculldistance = 30
	range hexfadeinmovement = 1.5 4.5
	range hex_z = -6 6
	range vessel_z = -30 0
	int vesselcount = 30
	int randomcount = 0
	
	range vesselspeed = 0.1 0.4
	range vesselenergy = 1.0 2.0
	
	range backgroundhexsize = 2 57
	float background_z = 5.f
	range background_alpha = 0.4 0.5
	range background_pos = 0 100
	int background_count = 30

	color3 color1 = 1 0 0
	color3 color2 = 0 0 1
	color3 color3 = 0 0 0
	color3 color4 = 1 1 0
}

trigger sextupletzoom
{
	230461 1000 -50
	239064 1000 -50
	247705 1000 -50
	256361 1000 -50
	258743 1000 -50
	261511 1000 -50
	263791 1000 -50
	265997 1000 -50
}

event sexbackgroundfadein
{
	time = 224200
	length = 1500
}

event sextupletdepth
{
	time = 242000
	length = 10000
}
namespace trisomy
{
	int seed = 103591;
	float movespeed = 0.02
	
	float spawnprobability = 0.2
	float spawnminimumenergy = 0.4
	
	float subdivprobability = 0.3
	float subdivminimumenergy = 0.4

	range addsize = 0.3 1.5
	float addfrequency = 0.04f
	range energy = 1.0 3.0

	color3 color1 = 1 0 0
	color3 color2 = 0 0 1
	color3 color3 = 0 0 0
	color3 color4 = 1 1 0
}

trigger sextupletcamera
{
	228631 180 -1
	237223 100 1
	245815 210 -0.5
	256388 380 1.4
}

event sextupletfadeout
{
	time = 268000
	length = 200
}

namespace painting
{
	int maxelements = 70
	float scrollspeed = -0.01
	float lineprobability = 0.80
	range gendistance = 1.3 4.5
	range linelength = 2.0 5.0
	range squaresize = 1.0 3.0
	float culldistance = 10.0
	color3 color1 = 1 0 0
	color3 color2 = 0 0 0
	color3 color3 = 0 0 1
	color3 color4 = 1 1 0
}

namespace thermidor
{
	int seed = 51908

}



material bauhausmaterial1
{
	diffuse = 1 0 0 
	ambient = 1 0 0
	specular = 0 0 0
	shininess = 50
}

material bauhausmaterial2
{
	diffuse = 1 1 0
	ambient = 1 1 0
	specular = 0 0 0
	shininess = 50
}

material bauhausmaterial3
{
	diffuse = 0 0 1
	ambient = 0 0 1
	specular = 0 0 0
	shininess = 50
}
material bauhausmaterial4
{
	diffuse = 0 0 0
	ambient = 0 0 0
	specular = 0 0 0
	shininess = 50
}

event bauhauscolorfade
{
	time = 175100
	length = 1500
}

event bauhausfadein
{
	time = 155300
	length = 3000
}
event bauhausfadeout
{
	time = 188000
	length = 1500
}

namespace bauhaus
{
	int seed = 156;

	float cameraspeed = 0.02
	range cameraoffset = 15 17.5
	range cameratargetoffset = 0.0 1.0
	range camerarotationdelta = -0.0035 0.0035 
	range cameraupvectorrotate = -0.1 0.1

	float culldistance = 15
	range floorwidth = 1 3
	range floordepth = 1 3
	range floorheight = 1 1
	range positionradius = 0 0.4
	
	range rectanglefadeinspeed = 0.002 0.03
	range rectanglefadeindistance = 2.3 6.5

	range cutsizey1 = -1.5 1.5
	range cutstarty1 = -1.5 1.5
	range cutsizex1 = -1.5 1.5
	range cutstartx1 = -1.5 1.5
	range cutsizey2 = 0.2 0.4
	range cutstarty2 = 0.2 0.4
	range cutsizex2 = 0.3 0.6
	range cutstartx2 = 0.2 0.3

	color3 color1 = 1 0 0
	color3 color2 = 0 0 1
	color3 color3 = 0 0 1
	color3 color4 = 1 1 0

	float fogstart = 15.0
	float fogend = 20.4
	
	int background_count = 50
	range background_y = -100 200
	range background_dist = 100 200
	range background_width = 10 20
	range background_length = 40 100

	color3 bcolor1 = 0.7 0.4 0.1
	color3 bcolor2 = 0.04 0.4 0.7
	color3 bcolor3 = 0 0 0
	color3 bcolor4 = 0.7 0.1 0.4
	
	vector3 lightposition = 0 0 0
	color3 lightdiffuse = 1 1 1
	color3 lightambient = 0.1 0.1 0.1
	color3 lightspecular = 1 1 1
	
}


material wovenmaterial1
{
	diffuse = 0 0 0 
	ambient = 1 0 0
	specular = 1 1 1
	shininess = 50
}

material wovenmaterial2
{
	diffuse = 0 0 0
	ambient = 1 1 0
	specular = 1 1 1
	shininess = 50
}

material wovenmaterial3
{
	diffuse = 0 0 0
	ambient = 0 0 1
	specular = 1 1 1
	shininess = 50
}
material wovenmaterial4
{
	diffuse = 0 0 0
	ambient = 0 0 0
	specular = 1 1 1
	shininess = 50
}

namespace wovenmesh
{
	int seed = 150
	float cameraspeed = 0.07
	range camerarotation = -0.001 0.001
	
	float cornerradius = 0.04
	range emitterenergy = 1.5 3.0
	range emitterspeed = 0.04 0.3
	range emitinterval = 0.01 0.15
	
	range elementenergy = 2.5 4.0
	
	float pathcubesize = 0.3

	color3 color1 = 1 0 0
	color3 color2 = 0 0 0
	color3 color3 = 0 0 1
	color3 color4 = 1 1 0

	float fogstart = 30.0
	float fogend = 40.4

	vector3 lightposition = 0 0 0
	color3 lightdiffuse = 1 1 1
	color3 lightambient = 1 1 1
	color3 lightspecular = 0 0 0
}

event wovenemitstart
{
	time = 195000
	length = 10000

}

trigger wovenhide
{
	207000 5400
}

trigger woventrigger
{
	207000 1000
	208000 1000
	209000 1000
	211400 1000
	212400 1000
	213400 1000
	216600 1000
	221000 1000
	222100 1000
	223200 1000
}

event wovenfadeout
{
	time = 221000
	length = 3000
}

event wovensync
{
	time = 210200
	length = 300
}



material trollmaterial1
{
	diffuse = 0 0 0 
	ambient = 0 0 0
	specular = 1 1 1
	shininess = 50
}
material trollmaterial1_alt
{
	diffuse = 1 1 1
	ambient = 1 1 1
	specular = 1 1 1
	shininess = 50
}

material trollmaterial2
{
	diffuse = 0 0 0
	ambient = 1 0 0
	specular = 1 1 1
	shininess = 50
}

material trollmaterial3
{
	diffuse = 0 0 0
	ambient = 1 1 0
	specular = 1 1 1
	shininess = 50
}
material trollmaterial4
{
	diffuse = 0 0 0
	ambient = 0 0 1
	specular = 1 1 1
	shininess = 50
}

namespace trollheim
{
	int seed = 510
	float culldistance = 15.0
	float cameraspeed = 0.06

	float addtime = 0.02f;
	range cubesperstrip = 10 35
	
	int mincubesbetweenbranches = 10
	float branchprobability = 0.1
	range cubesperbranch = 3 15 
	float regularbranchprobability = 0.4
	
	range thing_y = -10 50
	range thing_width = 15 50
	range thing_height = 10 40
	range thing_distance = 50 100
	range thing_alpha = 0.3 1.0
	int howmanythings = 10
	int seed1 = 503
	int seed2 = 154485
	int seed3 = 4491

	
	range emitterenergy = 1.5 3.0
	range emitterspeed = 0.04 0.3
	range emitinterval = 0.01 0.15
	
	range elementenergy = 2.5 4.0
	
	range cubesize = 0.05 0.15

	color3 color1 = 1 0 0
	color3 color2 = 0 0 0
	color3 color3 = 0 0 1
	color3 color4 = 1 1 0

	float fogstart = 30.0
	float fogend = 40.4

	vector3 lightposition = 0 0 0
	color3 lightdiffuse = 1 1 1
	color3 lightambient = 1 1 1
	color3 lightspecular = 0 0 0
}

trigger trollappear
{
	35832 1000
	36892 1000
}


trigger trollheimcameratrigger
{
	38000 1000
	44000 1000
	45000 1000
	46000 1000
	48500 1000
	50500 1000
}

trigger trollheimtausta
{
	39032 150
	40052 150
	41162 150
}

event trollfadeout
{
	time = 50000
	length = 2000 
}
event trollbackgroundfadeout
{
	time = 53000
	length = 2500
}
namespace hollytree
{
	int splinecount = 20
	int tolerance = 4
	int seed = 510;
	range pathcubesize = 0.2 3.0
	
	vector3 lightposition = 0 0 0
	color3 lightdiffuse = 1 1 1
	color3 lightambient = 1 1 1
	color3 lightspecular = 0 0 0
	
	range cameradistance = 20 45
	range cameratargetmovement = 1.5 2.5
	range camerapositionmovement = 1.5 4.0

	float fogstart = 30.0
	float fogend = 40.4
}

namespace textoverlay
{
	float y_start = 0.25
	float height = -0.1
}


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     beat				                                                                        ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

bpm beatquarter
{
	bpm = 14
	offset = 0
}

bpm beathalf
{
	bpm = 28
	offset = 0
}

bpm basicbeat0
{
	bpm = 56
	offset = 0
}

bpm basicbeat1
{
	bpm = 112
	offset = 0
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     meshes																					;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

/*
mesh testi.obj
{
	usevbo = true
	autotexture = false
	texture = texture1.jpg
	usefacenormals = false
	calculatenormals = false
	retain = true
}
*/

mesh sphere.obj
{
	usevbo = true
}
mesh test.obj
{
	usevbo = true
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     textures                                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; upload = true/false 
; wrap 	 = repeat/clamp
; retain = true/false 
; mipmap = true/false
; filter = nearest / linear 

texture ground.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}

texture ceiling.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture photo1.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture photo2.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture photo3.jpg
{
	mipmap = true
	wrap = repeat
	filter = linear
}
texture brslogo.png
{
	wrap = clamp
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;     postprocessing rendertargets                                                             ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;; NOTE! these are hardcoded into the postprocessing code so if any names are changed, they need to be 
;;;;; changed in the code as well!

rendertarget postprocess_1024
{
	width = 1024;
	height = 1024;
}
rendertarget postprocess_2048
{
	width = 2048;
	height = 2048;
}

rendertarget postprocess_512
{
	width = 512;
	height = 512;
}
rendertarget postprocess_256
{
	width = 256;
	height = 256;
}
rendertarget postprocess_256_2
{
	width = 256;
	height = 256;
}
rendertarget postprocess_128
{
	width = 128;
	height = 128;
}
rendertarget postprocess_128_2
{
	width = 128;
	height = 128;
}


texture postprocess_1024
{
	wrap = clamp;
}
texture postprocess_1024_2
{
	wrap = clamp;
}
texture postprocess_512
{
	wrap = clamp;
}
texture postprocess_256
{
	wrap = clamp;
}
texture postprocess_1284
{
	wrap = clamp;
}
texture postprocess_128_2
{
	wrap = clamp;
}
texture postprocess_64
{
	wrap = clamp;
}
texture postprocess_64_2
{
	wrap = clamp;
}

; this is for the pixelize shader mainly
texture postprocess_32
{
	filter = nearest
	wrap = clamp
}


; some whitespade needed :)