<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0px; top:0px;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox where print preview displays the noscript content */
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

Also see [[AdvancedOptions]]
!!Contact info
71 rue Froidevaux
75014 Paris, France
+33 (0)

My [[LinkedIn|http://www.linkedin.com/in/lacroixbenoit]] and [[Viadeo|http://www.viadeo.com/fr/profile/benoit.lacroix1]] profiles:

<a href='http://www.linkedin.com/in/lacroixbenoit' rel='nofollow'><img src='images/logo_linkedin.png' alt='LinkedIn' style='margin-right: 50px'/></a>
<a href='http://www.viadeo.com/fr/profile/benoit.lacroix1' rel='nofollow'><img src='images/logo_viadeo.gif' alt='Viadeo'/></a>
!! Context

!! Issues

!! Results

!! Related publications
!! Context

Buildings design takes great advantages of simulation, for instance to improve fire safety or optimize the space. Initiated with [[Alstom|http://www.alstom.com]] for the design of underground trains, the objective of this project was to simulate pedestrians in crowded areas, taking into account individual characteristics such as speed or body type. It took place in 2006 in the [[Multi-Agents Systems and Behavior Team|http://www.lifl.fr/SMAC/]] of the [[Computer Science Laboratory of Lille|http://www.lifl.fr]].

[img(22%, )[Example of a simulated crowd in a subway station|images/misc_station_1.png][images/misc_station_1.png]] [img(22%, )[Example of a simulated crowd in a subway station|images/misc_station_2.png][images/misc_station_2.png]] 

!! Issues

Our objective was to simulate pedestrians displacement through complex environments.The objective was to reproduce real world situations, not to obtain the most realistic appearance. Three  main issues were thus considered:
# space management: pedestrians and environment representation, displacement models
# time management: scheduling, waiting queues
# and simulation validation: confronting the simulation results with reality, at the macroscopic leve (flows at entrances or exits, statistic distributions) and at the microscopic level (individual behaviors)

!! Results

[>img(40%, )[The MISC platform: simulated crowd in a corridor|images/misc_corridor.png][images/misc_corridor.png]] The work led to the development of the MISC platform (for “Modeling of Individuals in Spatialy Constrained environments”). MISC allows simulating agents, here pedestrians, in complex environments. 

The agents use collision algorithms, and autonomously adjust their movements according to their individual characteristics and limited perceptions. Our approach use the notion of agents' generators. Those generators create various agents' at specified intervals and frequency, and assign them global objectives and individual characteristics. 

One of the hard issues considered in the project was to allow agents to switch their displacement model at runtime, so as to handle point-to-point displacement as well as queuing at a ticket distributor. The displacement model is based on the concept of blurred path following, coupled to a model of waiting queues. An agent is thus able to move halfway to its final goal, wait a few minutes, and then complete its journey. 

Finally, validation is based on flow measurements, the next objective being the integration of individual behavior and valication with real data.

!! Related publications

Lacroix, B., Mathieu, P., & Picault, S. (2006). [[Time and Space Management in Crowd Simulations.|papers/crowd_simulation_esm06_lacroix.pdf]] In Proceedings of the European Simulation and Modelling Conference, pp. 315-320, Toulouse, France. //(also available: [[bibtex|papers/crowd_simulation_esm06_lacroix.bib]])//

//In french:// Lacroix, B. (2006). [[La gestion du temps et de l'espace dans les simulations de foules.|papers/gestion_temps_espace_simulations_foules_lacroix_06.pdf]] Master's thesis report, University of Lille, France. //(also available: [[presentation|papers/gestion_temps_espace_simulations_foules_slides_lacroix_06.pdf]])//
!!~PhD in Computer Science, University of Lille, 2009

__Dissertation:__ Norms to increase variety? Behavioral differentiation using norms, and its application to traffic in driving simulators 

__Advisors:__ [[Andras Kemeny|http://www.experts.renault.com/kemeny/expert/index.html]] (RENAULT) and [[Philippe Mathieu|http://www.lifl.fr/~mathieu/]] (Computer Science Laboratory of Lille)

More on [[the project|TrafficSimulation]], and on my [[work at RENAULT|WorkExperiences]]. See also the [[PhD subject|http://www.experts.renault.com/kemeny/phds/benoit_lacroix/index.html]].

During these 3 years I followed different courses, including:
* various management courses: negociation, industrial property, oral presentation, efficiency in meetings (1 to 3 days each),
* a business creation summer school (one-week full time, 5 persons group): from the innovative idea to the business plan creation. Presented the business plan in front of a professionals' panel,
* the European Agents Systems Summer School (one-week full time, 2008).

!!M.S. in Engineering, Ecole Centrale de Lille, 2006
 (Ingénieur de l'[[Ecole Centrale de Lille|http://www.ec-lille.fr/]], in the top 12 of engineering graduate schools in France)

__General education phase (2 years):__ focused on multidisciplinary in-depth scientific education and leadership training, including production systems, electronics, mechanics, electricity, economy & business development

__Specialization training phase (1 year):__ majored in Software Engineering

__Gap year internship (1 year):__ Software Engineer at AUCHAN (see [[Work Experiences|WorkExperiences]])

__Group project:__ innovative project (2 years, 5 persons) to design and develop  an automated measurement system based on sound transductors for the [[FFPJP|http://www.ffpjp.info/]]. Presented the results in front of a panel of professors and professionals.

!!M.S. in Computer Science, University of Lille, 2006

Majored in artificial intelligence and data mining. 

__Advanced specialization courses:__ data mining, automated learning, clustering, artificial intelligence, modal logic, bioinformatics (see the [[M.S. content|http://www.lifl.fr/LIFL1/formations/dea.html]])

__Group project:__ scientific project (4 months, 2 persons): simulation and evaluation of the Google pagerank algorithm. Realisation: development of a simulation tool allowing the evaluation of ranking strategies (Java) . 

In buildings, the thermal functions of heating, ventilation, air conditioning and domestic hot water production are often interdependent. Additionally, it is more and more complex to control them, given the increasing use of alternative energy sources, such as solar thermal collectors or heat pumps. In this project, we elaborated an approach allowing to design and optimize the control of thermal systems in the buildings, while improving flexibility and reusability.


The details of the proposed solution are still confidential. They will be published mid-2012, after patent application has been filled.

[>img(, )[The prototype compact unit controlled using the proposed approach|images/prototype_compact_unit.png]]The approach was used to control a compact unit providing heating, ventilation and domestic hot water production in a low-energy building. The system was evaluated using a thermal simulator, and managed to improve the thermal comfort by 35% compared to the initial control system, for only a 2.5% increase in costs. The approach will soon be evaluated on a physical test bench to validate these results in experimental conditions.

!!Related publications

Patent pending.

Lacroix B., Paulus C., & Mercier D. (2012). ~Multi-Agent Control of Thermal Systems in Buildings. Submitted to Agent Technologies in Energy Systems (ATES@AAMAS'12).
|Author|Eric Shulman|
|Description|adds support for resizing images|
This plugin adds optional syntax to scale an image to a specified width and height and/or interactively resize the image with the mouse.
The extended image syntax is:
where ''(w,h)'' indicates the desired width and height (in CSS units, e.g., px, em, cm, in, or %). Use ''auto'' (or a blank value) for either dimension to scale that dimension proportionally (i.e., maintain the aspect ratio). You can also calculate a CSS value 'on-the-fly' by using a //javascript expression// enclosed between """{{""" and """}}""". Appending a plus sign (+) to a dimension enables interactive resizing in that dimension (by dragging the mouse inside the image). Use ~SHIFT-click to show the full-sized (un-scaled) image. Use ~CTRL-click to restore the starting size (either scaled or full-sized).
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
2009.02.24 [1.2.1] cleanup width/height regexp, use '+' suffix for resizing
2009.02.22 [1.2.0] added stretchable images
2008.01.19 [1.1.0] added evaluated width/height values
2008.01.18 [1.0.1] regexp for "(width,height)" now passes all CSS values to browser for validation
2008.01.17 [1.0.0] initial release
version.extensions.ImageSizePlugin= {major: 1, minor: 2, revision: 1, date: new Date(2009,2,24)};
var f=config.formatters[config.formatters.findByField("name","image")];
f.handler=function(w) {
	this.lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var floatLeft=lookaheadMatch[1];
		var floatRight=lookaheadMatch[2];
		var width=lookaheadMatch[3];
		var height=lookaheadMatch[4];
		var tooltip=lookaheadMatch[5];
		var src=lookaheadMatch[6];
		var link=lookaheadMatch[7];

		// Simple bracketted link
		var e = w.output;
		if(link) { // LINKED IMAGE
			if (config.formatterHelpers.isExternalLink(link)) {
				if (config.macros.attach && config.macros.attach.isAttachment(link)) {
					// see [[AttachFilePluginFormatters]]
					e = createExternalLink(w.output,link);
					e.title = config.macros.attach.linkTooltip + link;
				} else
					e = createExternalLink(w.output,link);
			} else 
				e = createTiddlyLink(w.output,link,false,null,w.isStatic);

		var img = createTiddlyElement(e,"img");
		if(floatLeft) img.align="left"; else if(floatRight) img.align="right";
		if(width||height) {
			var x=width.trim(); var y=height.trim();
			var stretchW=(x.substr(x.length-1,1)=='+'); if (stretchW) x=x.substr(0,x.length-1);
			var stretchH=(y.substr(y.length-1,1)=='+'); if (stretchH) y=y.substr(0,y.length-1);
			if (x.substr(0,2)=="{{")
				{ try{x=eval(x.substr(2,x.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			if (y.substr(0,2)=="{{")
				{ try{y=eval(y.substr(2,y.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			img.style.width=x.trim(); img.style.height=y.trim();
		if(tooltip) img.title = tooltip;

		if (config.macros.attach && config.macros.attach.isAttachment(src))
			src=config.macros.attach.getAttachment(src); // see [[AttachFilePluginFormatters]]
		else if (config.formatterHelpers.resolvePath) { // see [[ImagePathPlugin]]
			if (config.browser.isIE || config.browser.isSafari) {
					return false;
			} else
		w.nextMatch = this.lookaheadRegExp.lastIndex;

config.formatterHelpers.addStretchHandlers=function(e,stretchW,stretchH) {
	e.title=((stretchW||stretchH)?'DRAG=stretch/shrink, ':'')
		+'SHIFT-CLICK=show full size, CTRL-CLICK=restore initial size';
	e.statusMsg='width=%0, height=%1';
	e.onmousedown=function(ev) { var ev=ev||window.event;
		return false;
	e.onmousemove=function(ev) { var ev=ev||window.event;
		if (this.sizing) {
			var s=this.style;
			var currX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var currY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var newW=(currX-this.offsetLeft)/(this.startX-this.offsetLeft)*this.startW;
			var newH=(currY-this.offsetTop )/(this.startY-this.offsetTop )*this.startH;
			if (this.stretchW) s.width =Math.floor(Math.max(newW,this.minW))+'px';
			if (this.stretchH) s.height=Math.floor(Math.max(newH,this.minH))+'px';
			clearMessage(); displayMessage(this.statusMsg.format([s.width,s.height]));
		return false;
	e.onmouseup=function(ev) { var ev=ev||window.event;
		if (ev.shiftKey) { this.style.width=this.style.height=''; }
		if (ev.ctrlKey)  { this.style.width=this.originalW; this.style.height=this.originalH; }
		return false;
	e.onmouseout=function(ev) { var ev=ev||window.event;
		return false;
about me
[[Work Experiences|WorkExperiences]]

about my work
[[Energy Efficiency|EnergyEfficiency]]
[[Traffic Simulation|TrafficSimulation]]
[[Crowds Simulation|CrowdsSimulation]]

[[Contact Me|ContactMe]]

[[Creature Creator|CreatureCreator]]
personal stuff
[[Running & Hiking|Running]]
<!-- Google Analystics script -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-15303485-1");
} catch(err) {}</script>
<meta name='description' content='Benoit Lacroix home page and activities summary'/>
<meta name='keywords' lang='fr' content='benoit lacroix, lacroix benoit, intelligence artificielle, artificial intelligence, IA, AI, systèmes multi-agents, SMA, comportements, trafic, simulation, modelisation'/>
<meta name='keywords' lang='en' content='benoit lacroix, lacroix benoit, artificial intelligence, IA, AI, multi-agent systems, MAS, behaviour, traffic, simulation, modelisation'/>
<meta name='author' content='Benoit Lacroix'/>
<meta name='robots' content='index,follow,archive'/>
<<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
Last Updated: 
May 24, 2012
<div id='header' class='header'>
<div class='headerShadow'>
<span class='searchBar' macro='search'></span>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>

<div id='mainMenu'>
<span refresh='content' tiddler='MainMenu'></span>
<span id='noticeBoard' refresh='content' tiddler='NoticeBoard'></span>

<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='MochaSideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div id='contentFooter' refresh='content' tiddler='contentFooter'></div>
This is a brief summary of my background. You will find here my full [[resume|cv/cv_benoit_lacroix_en.pdf]] in pdf ([[here|cv/cv_benoit_lacroix_fr.pdf]] is a French version).
!!Key strengths
* Passionate about clean energies and socially focused approaches
* Self-motivated and autonomous
* Innovative thinker, results-driven
* Strong analytical and problem-solving skills
* Artificial intelligence expert with industrial and research background
!!Experience summary
* 2010 - 2012: Technical project leader in renewable energies at [[CEA|http://www.cea.fr/english_portal]] (French Atomic and Alternative Energy Research Center, 1.5 years)
* 2006 - 2009: Applied research engineer at [[RENAULT|http://www.renault.com]] (automotive industry, 3 years)
* 2006: Research engineer in artificial intelligence at the [[Computer Science Laboratory of Lille|http://www.lifl.fr/]], in collaboration with [[ALSTOM|http://www.alstom.com]] (research laboratory & transportation industry, 6 months)
* 2004 - 2005: Software engineer at [[AUCHAN|http://www.auchan.com]] (retail, 1 year 1 month)
* Ph.D. in Computer Science, [[University of Lille|http://www.univ-lille1.fr]], France, 2009 (in collaboration with [[RENAULT|http://www.renault.com]])
* Master's Degree in Engineering, [[Ecole Centrale de Lille|http://www.ec-lille.fr/]] Graduate School, France, 2006 (in the top 12 of engineering graduate schools in France). In depth scientific curriculum, incl. production systems, electronics, mechanics and electricity. Majored in software engineering.
* Master's Degree in Computer Science, [[University of Lille|http://www.univ-lille1.fr]], France, 2006. Majored in artificial intelligence and data mining.
!!Contact info
71 rue Froidevaux
75014 Paris, France
+33 (0)

My [[LinkedIn|http://www.linkedin.com/in/lacroixbenoit]] and [[Viadeo|http://www.viadeo.com/fr/profile/benoit.lacroix1]] profiles. Please feel free to contact me directly!

<a href='http://www.linkedin.com/in/lacroixbenoit' rel='nofollow'><img src='images/logo_linkedin.png' alt='LinkedIn' style='margin-right: 50px'/></a>
<a href='http://www.viadeo.com/fr/profile/benoit.lacroix1' rel='nofollow'><img src='images/logo_viadeo.gif' alt='Viadeo'/></a>
A list of my published paper. Still under work, of course!

!! International Journals

Lacroix B., Mathieu P. & Kemeny A. Formalizing the Construction of Populations in ~Multi-Agent Simulations. To appear in Engineering Applications of Artificial Intelligence. //(accepted)//

!! Peer reviewed international conference proceedings

Lacroix B., Paulus C., & Mercier D. (2012). ~Multi-Agent Control of Thermal Systems in Buildings. In Proceedings of Agent Technologies in Energy Systems (ATES@AAMAS'12), Valencia, Spain.

Lacroix B. & Mathieu M. (2012). [[Automated Generation of Various and Consistent Populations in Multi-Agent Simulations|papers/automated_population_paams-12_lacroix.pdf]]. In: Demazeau, Y., Muller, J., Corchado, J., & Bajo, J. (Eds.), 10th International Conference on Practical Applications of Agents and ~Multi-Agent Systems. Advances in Intelligent and Soft Computing, vol. 155, pp. 127-137. //(also available: [[presentation|papers/automated_population_paams-12_slides_lacroix.pdf]], [[paper on SpringerLink|http://www.springerlink.com/content/m10hw83678h20364/]])//

Lacroix B., Mathieu M., & Kemeny A. (2009). [[Generating Various and Consistent Behaviors in Simulations.|papers/generating_behaviors_paams09_lacroix.pdf]] In: Demazeau, Y., Pavon, J., Corchado, J., & Bajo, J. (Eds.), 7th International Conference on Practical Applications of Agents and ~Multi-Agent Systems. Advances in Intelligent and Soft Computing, vol. 55, pp. 110-119, Springer. //(also available: [[presentation|papers/generating_behaviors_paams09_slides_lacroix.pdf]], [[bibtex|papers/generating_behaviors_paams09_lacroix.bib]] and [[paper on SpringerLink|http://www.springerlink.com/content/m0q2644428817723/]])//

Lacroix B., Rouelle V., Kemeny A., Mathieu P., Laurent N., Millet G., & Gallee G. (2009). [[Informal Rules for Autonomous Vehicles in SCANeR.|papers/informal_rules_dsc09_lacroix.pdf]] In Proceedings of the Driving Simulation Conference, pp. 58-69, Monaco. //(also available: [[presentation|papers/informal_rules_dsc09_slides_lacroix.pdf]] and [[bibtex|papers/informal_rules_dsc09_lacroix.bib]])//

Lacroix, B., Mathieu, P., & Kemeny, A. (2009). [[The Use of Norms Violations to Model Agents Behavioral Variety.|papers/norms_violations_coin-lncs-09_lacroix.pdf]] In: Hubner, J.F., Matson, E., Boissier, O., & Dignum, V. (Eds.), Coordination, Organizations, Institutions and Norms in Agent Systems IV. LNCS, vol. 5428, pp. 220-234, Springer. //(also available: [[bibtex|papers/norms_violations_coin-lncs-09_lacroix.bib]] and [[paper on SpringerLink|http://www.springerlink.com/content/327t8w68q00470u3/]])//

Lacroix, B., Mathieu, P., & Kemeny, A. (2008). [[A Normative Model for Behavioral Differentiation.|papers/normative_model_iat08_lacroix.pdf]] In Proceedings of the IEEE/WIC/ACM International Conference on Intelligent Agent Technology, pp. 96-99, Sydney, Australia. //(also available: [[presentation|papers/normative_model_iat_08_slides_lacroix.pdf]], [[bibtex|papers/normative_model_iat_08_lacroix.bib]] and [[paper on IEEE Xplore|http://ieeexplore.ieee.org/arnumber=4740604]])//

Lacroix, B., Mathieu, P., Rouelle, V., Chaplier, J., Gallée, G., & Kemeny, A. (2007). [[Towards Traffic Generation with Individual Driver Behavior Model Based Vehicles.|papers/traffic_generation_dsc-na07_lacroix.pdf]] In Proceedings of the Driving Simulation Conference North America, pp. 144-154, Iowa City, USA. //(also available: [[presentation|papers/traffic_generation_dsc-na07_slides_lacroix.pdf]] and [[bibtex|papers/traffic_generation_dsc-na07_lacroix.bib]])//

Lacroix, B., Mathieu, P., & Picault, S. (2006). [[Time and Space Management in Crowd Simulations.|papers/crowd_simulation_esm06_lacroix.pdf]] In Proceedings of the European Simulation and Modelling Conference, pp. 315-320, Toulouse, France. //(also available: [[bibtex|papers/crowd_simulation_esm06_lacroix.bib]])//

!! Peer reviewed national conference proceedings

Lacroix, B., Mathieu, P. & Picault, S. (2006). [[Une gestion réaliste du temps et de l'espace dans les simulations de foules.|papers/simulation_foule_jfsma06_lacroix.pdf]] Actes des 14èmes Journées Francophones sur les Systèmes ~Multi-Agents (JFSMA'06), pp. 77-80, Annecy, France. //(also available: [[presentation|papers/simulation_foule_jfsma06_slides_lacroix.pdf]], [[bibtex|papers/simulation_foule_jfsma06_lacroix.bib]] and the [[long paper|papers/simulation_foule_submitted_jfsma06_lacroix.pdf]] initialy submitted)//

!! Presentations

Lacroix B. (2012). Application des Systèmes ~Multi-Agents aux Systèmes Energétiques. Séminaire de l’Ecole Centrale de Lille, France.

Lacroix B. (2012). [[Interview|papers/interview_inf-ose-12_lacroix.pdf]] for Inf'OSE, the journal of the Master on Energy Systems of the Mines ~ParisTech Graduate School, for a [[paper about Smart Buildings|papers/interview_and_article_inf-ose-12_lacroix.pdf]] writen by Thibault Perrigault.

Lacroix B. (2011). Systèmes Multi Agents et Intelligence Ambiante. Séminaire de l’Ecole Centrale de Lille, France.

Lacroix B. (2009). [[Managing Variety and Consistency of Agents Behaviors in Simulations.|papers/lacroix_benoit_cv_eurodocinfo09.pdf]] Presented at ~EuroDocInfo, Mons, Belgium, January 23-24. 

Lacroix B., Mathieu P., & Kemeny A. (2008). [[The Use of Norms Violations to Model Agents Behavioral Variety.|papers/norms_violations_coin-aamas-08_lacroix.pdf]] Presented at the 5th Workshop on Coordination, Organizations, Institutions and Norms in Agent Systems, held with AAMAS'08 (COIN@AAMAS'08), pp. 183-196, Estoril, Portugal. //(also available: [[presentation|papers/norms_violations_coin-aamas-08_slides_lacroix.pdf]] and [[bibtex|papers/norms_violations_coin-aamas-08_lacroix.pdf]])//

Lacroix B., Kemeny A., Mathieu P. & Rouelle V. (2008). [[Simulation de trafic et simulateurs de conduite.|papers/simulation_trafic_ntic08_slides_lacroix.pdf]] Presented at the Forum Systèmes & Logiciels pour les NTIC dans le transport, ~Marne-La-Vallée, France, January 31.

Lacroix B. (2007). Traffic Simulation at Renault. Presented at the ~SCANeR&copy; User Group Meeting, Naples, Italy, October 25-26.

!! Thesis

Lacroix B. (2009). [[Normer pour mieux varier ? La différenciation comportementale par les normes, et son application au trafic dans les simulateurs de conduite.|papers/thesis_lacroix_2009.pdf]] Ph.D. thesis, University of Lille, France. //(also available: [[presentation|papers/thesis_slides_lacroix_2009.pdf]])//

Lacroix B. (2006). [[La gestion du temps et de l'espace dans les simulations de foules.|papers/gestion_temps_espace_simulations_foules_lacroix_06.pdf]] Master's thesis report, University of Lille, France. //(also available: [[presentation|papers/gestion_temps_espace_simulations_foules_slides_lacroix_06.pdf]])//

!! Referee

Scientific Committee Member of ISA'11 and ISA'12
Program Committee Member of IFAAMAS'08 and IFAAMAS'10.
!!!! Reference times
10k : 41min52s
half-marathon : 1h34min12s
marathon : 3h32min49s

!! 2012

//2012-05: Trail des Maures (45km, 2600m D+) / Trail du Grand Lubéron / Trail du Nivolet Revard (51km, 2700m D+)//

//2011-07: [[Le Trail du Bout du Monde|http://www.trailduboutdumonde.com/]] (35km)//

!! 2011

2011-10-16: [[Marathon d'Amsterdam|http://www.amsterdammarathon.nl/]] 

2011-09-10: [[Trail de la Cote d'Opale|http://www.trailcotedopale.com/]] 2h52min41s (31km, 795m D+, 142/803)

2011-07-14: [[La Fleur du Roy|http://www.capvercors.com/capvercors9.1.html]], 1h05min58s (14km, 300m D+, 34/121)

2011-06-11: [[Castor Fou|http://castorfou.free.fr/]], 2h02min03s (23km, 500m D+)

2011-03-13: [[Semi-marathon de Rambouillet|http://rambouilletolympique.pagesperso-orange.fr/semimarathon/semimarathon.htm]], 1h34min12s

2011-01-09: [[Trail Blanc de Serre Chevalier|http://www.trailserrechevalier.com/]], 3h02min46 (30.1km, 750m D+, 134/413)

!! 2010

''2010-07-18: [[Sky Race - Chemin de Ronde|http://www.trailserrechevalier.com/]], 2h53min09s (24km, 800m D+, 56/324)''

''2010-06-26: [[Le Cross du Mont-Blanc|http://www.montblancmarathon.net/]],2h56min49s (23km, 1450m D+, 177/1301)''

2010-06-13: [[La Course du Chateau de Vincennes|http://www.sportpassionevenement.com/courses/coursechateau/]], 1h00min36s (10km)

2010-05-22: [[Le Petit Savoyard (Grand Raid 73)|http://grandraid73.fr/]], 3h10min54s (23km, 1450m D+, Chambery)

''2010-05-09: [[Foulées Cachanaises|http://www.ville-cachan.fr/vos-loisirs/rendez-vous-cachanais/rendez-vous-sportifs/foulees-cachanaises/]] 41min52s (10km, 59/231)''

''2010-04-18: [[Semi-marathon du lac d'Annecy|http://www.marathon-annecy.com/]] 1h34min29s (343/2745)''

2010-04-11: [[Les Foulées Meudonnaises|http://fouleemeudonnaise.unblog.fr/]], 1h03min05s (10km)

2010-03-28: [[Lyon Urban Trail|http://www.lyonurbantrail.com/]], 2h10min33s (22km, 800m D+)

''2010-02-08: [[Les Drayes Blanches|http://drayesblanches.com/]], 2h13min46s (23.5km, 620m D+, on snow, 82/240)''

!! 2009

''2009-09-27: [[Paris-Versailles|http://www.parisversailles.com/]], 1h14min06s (16km, 1634/18004)''

2009-09-20: [[10km de Lyon|http://www.runninglyon.com/]], 43min31s

2009-09-05: [[Semi-marathon de Lille Metropole|http://www.semimarathon-lille.fr/]], 1h50min25s

''2009-07-13: [[La Fleur du Roy|http://www.villarddelans.com/]], 1h07min04s (14km, 300m D+, 57/211)''

2009-06-13: [[Castor Fou|http://castorfou.free.fr/]], 2h18min29s (23km, 500m D+)

''2009-04-05: [[Marathon de Paris|http://www.parismarathon.com/]], 3h32min49s (6201/30334)''

2009-03-08: [[Semi-marathon de Paris|http://www.semideparis.com/]], 1h42min53s

2009-02-06: [[Les Foulées de Vincennes|http://www.sportpassionevenement.com/]], 1h07min46s (10km)

!! 2008

2008-09-27: [[Paris-Versailles|http://www.parisversailles.com/]], 1h26min49s (16km)
|Author|Eric Shulman|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
>see [[SinglePageModePluginInfo]]
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release.  Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 6, date: new Date(2008,10,17)};
config.paramifiers.SPM = { onstart: function(v) {
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		config.lastURL = window.location.hash;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
} };
if (config.options.chkSinglePageMode==undefined)
if (config.options.chkSinglePagePermalink==undefined)
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
if (config.options.chkTopOfPageMode==undefined)
if (config.options.chkBottomOfPageMode==undefined)
if (config.options.chkSinglePageAutoScroll==undefined)
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash) return; // no change in hash
	var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
	if (tids.length==1) // permalink (single tiddler in URL)
	else { // restore permaview or default view
		config.lastURL = window.location.hash;
		if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();

if (Story.prototype.SPM_coreDisplayTiddler==undefined)
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
	var opt=config.options;
	var single=opt.chkSinglePageMode && !startingUp;
	var top=opt.chkTopOfPageMode && !startingUp;
	var bottom=opt.chkBottomOfPageMode && !startingUp;
	if (single) {
		story.forEachTiddler(function(tid,elem) {
			// skip current tiddler and, optionally, tiddlers that are folded.
			if (	tid==title
				|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
			// if a tiddler is being edited, ask before closing
			if (elem.getAttribute("dirty")=="true") {
				if (opt.chkSinglePageKeepEditedTiddlers) return;
				// if tiddler to be displayed is already shown, then leave active tiddler editor as is
				// (occurs when switching between view and edit modes)
				if (tiddlerElem) return;
				// otherwise, ask for permission
				var msg="'"+tid+"' is currently being edited.\n\n";
				msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
				if (!confirm(msg)) return; else story.saveTiddler(tid);
	else if (top)
	else if (bottom)
	if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		if (!isTopTiddler && (single || top))
		else if (bottom)
		else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	} else
		this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=document.getElementById(story.idPrefix+title);
	if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
		// scroll to top of page or top of tiddler
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
		// if animating, defer scroll until after animation completes
		var delay=opt.chkAnimate?config.animDuration+10:0;

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
a short presentation of myself and my work
Benoit Lacroix
/*Mocha TiddlyWiki Theme*/
/*Version 1.0*/
/*Design and CSS originally by Anthonyy, ported to TiddlyWiki by Saq Imtiaz.*/

body {
 margin: 0 auto;

 font-family: Lucida Grande, Tahoma, Arial, Helvetica, sans-serif; /* Lucida Grande for the Macs, Tahoma for the PCs */
 font-size: 1em;
 line-height: 1.6em;
 color: #666;
 border: 0;
 margin: 0 auto;
 max-width : 974px;

.header {
 background: #fff; 
 padding-top: 10px;
 clear: both;
 border-bottom: 4px solid #948979;

.headerShadow { 
 padding: 2.6em 0em 0.5em 0em; 

.siteTitle {
 font-family: 'Trebuchet MS' sans-serif;
 font-weight: bold;
 font-size: 32px;
 color: #CC6633;
 margin-bottom: 30px;
 background-color: #FFF;

.siteTitle a{
 border-bottom:1px dotted #cc6633;

.siteSubtitle {
 font-size: 1.0em;
 display: block;
 margin: .5em 3em; color: #999999;

#mainMenu {
 padding: 2em 0.5em 0.5em 0em;


#displayArea {
 margin: 0em 17em 0em 15em;

.tagClear {clear:none;}

#contentFooter {background:#575352; color:#BFB6B3; clear: both; padding: 0.5em 1em;}

 #contentFooter a {
 color: #BFB6B3;
 border-bottom: 1px dotted #BFB6B3;
 #contentFooter a:hover {
 color: #FFFFFF;

 a,#sidebarOptions .sliderPanel a{
 text-decoration: none;

 a:hover,#sidebarOptions .sliderPanel a:hover {
 background-color: #F5F5F5; 

.viewer .button, .editorFooter .button{
 color: #666;
 border: 1px solid #CC6714;

.viewer .button:hover, 
.editorFooter .button:hover{
 color: #fff;
 background: #CC6714;
 border-color: #CC6714;

.viewer .button:active, .viewer .highlight,.editorFooter .button:active, .editorFooter .highlight{color:#fff; background:#575352;border-color:#575352;}

 #mainMenu a {
 display: block;
 padding: 5px;
 border-bottom: 1px solid #CCC;

 #mainMenu a:link, #navlist a:visited {
 text-decoration: none;
 #mainMenu a:hover {
 background: #000000 url(arrow.gif) 96% 50% no-repeat;
 background-color: #F5F5F5;

#mainMenu br {display:none;}

#sidebarOptions a {
 text-decoration: none;

#sidebarOptions a:hover {
 background-color: #F5F5F5;border:1px solid #fff;

#sidebarOptions {line-height:1.4em;}

 .tiddler {
 padding-bottom: 40px;
 border-bottom: 1px solid #DDDDDD; 
.title {color:#CC6633;}
.subtitle, .subtitle a { color: #999999; font-size: 1.0em;margin:0.2em;}
.shadow .title{color:#948979;}

.selected .toolbar a {color:#999999;}
.selected .toolbar a:hover {color:#4F4B45; background:transparent;border:1px solid #fff;}

.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active{color:#4F4B45; background:transparent;border:1px solid #fff;}

 .listLink,#sidebarTabs .tabContents {line-height:1.5em;}
 .listTitle {color:#888;}

#sidebarTabs .tabContents {background:#fff;}
#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button{color:#999;}
#sidebarTabs .tabContents .tiddlyLink:hover,#sidebarTabs .tabContents .button:hover{color:#4F4B45;background:#fff}

#sidebarTabs .tabContents .button:hover, #sidebarTabs .tabContents .highlight, #sidebarTabs .tabContents .marked, #sidebarTabs .tabContents a.button:active{color:#4F4B45;background:#fff}

.tabSelected{color:#fff; background:#948979;}

.tabUnselected {
 background: #ccc;

 .tabSelected, .tabSelected:hover {
 color: #fff;
 background: #948979;
 border: solid 1px #948979;

 .tabUnselected {
 color: #999;
 background: #eee;
 border: solid 1px #ccc;

#sidebarTabs .tabUnselected { border-bottom: none;padding-bottom:3px;}
#sidebarTabs .tabSelected{padding-bottom:3px;}

#sidebarTabs .tabUnselected:hover { border-bottom: none;padding-bottom:3px;color:#4F4B45}

#sidebarOptions .sliderPanel {
 background: #fff; border:none;
 font-size: .9em;
#sidebarOptions .sliderPanel a {font-weight:normal;}
#sidebarOptions .sliderPanel input {border:1px solid #999;}

.viewer blockquote {
 border-left: 3px solid #948979;

.viewer table {
 border: 2px solid [[ColorPalette::TertiaryDark]];

.viewer th, thead td {
 background: #948979;
 border: 1px solid #948979;
 color: #fff;
.viewer pre {
 border: 1px solid #948979;
 background: #f5f5f5;

.viewer code {
 color: #2F2A29;

.viewer hr {
 border-top: dashed 1px #948979;

.editor input {
 border: 1px solid #948979;

.editor textarea {
 border: 1px solid #948979;

.popup {
 background: #948979;
 border: 1px solid #948979;

.popup li.disabled {
 color: #000;

.popup li a, .popup li a:visited {
 color: #eee;
 border: none;

.popup li a:hover {
 background: #575352;
 color: #fff;
 border: none;

.tagging, .tagged {
 border: 1px solid #eee;
 background-color: #F7F7F7;

.selected .tagging, .selected .tagged {
 background-color: #eee;
 border: 1px solid #BFBAB3;

 .tagging .listTitle, .tagged .listTitle {
 color: #bbb;

.selected .tagging .listTitle, .selected .tagged .listTitle {
 color: #666; 

.tagging .button, .tagged .button {
.selected .tagging .button, .selected .tagged .button {

.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}

.tagging .button:hover, .tagged .button:hover, .tagging .button:active, .tagged .button:active {
 border: none; background:transparent; text-decoration:underline; color:#000;

h1,h2,h3,h4,h5 { color: #666; background: transparent; padding-bottom:2px; font-family: Arial, Helvetica, sans-serif; }
h1 {font-size:18px;}
h2 {font-size:16px;}
h3 {font-size: 14px;}

#messageArea {
 border: 4px solid #948979;
 background: #f5f5f5;
 color: #999;

#messageArea a:hover { background:#f5f5f5;}

#messageArea .button{
 color: #666;
 border: 1px solid #CC6714;

#messageArea .button:hover {
 color: #fff;
 background: #948979;
 border-color: #948979;

* html .viewer pre {
 margin-left: 0em;

* html .editor textarea, * html .editor input {
 width: 98%;

.searchBar {float:right;font-size: 1.0em;}
.searchBar .button {color:#999;display:block;}
.searchBar .button:hover {border:1px solid #fff;color:#4F4B45;}
.searchBar input { 
 background-color: #FFF;
 color: #999999;
 border: 1px solid #CCC; margin-right:3px;

#sidebarOptions .button:active, #sidebarOptions .highlight {background:#F5F5F5;}

*html #contentFooter { padding:0.25em 1em 0.5em 1em;}

#noticeBoard {font-size: 0.9em; color:#999; position:relative;display:block;background:#fff; clear: both; margin-right:0.5em; margin-top:60px; padding:5px; border-bottom: 1px dotted #CCC; border-top: 1px dotted #CCC;}
#mainMenu #noticeBoard a,#mainMenu #noticeBoard .tiddlyLink {display:inline;border:none;padding:5px 2px;color:#DF9153 }
#noticeBoard a:hover {border:none;} 

#noticeBoard br {display:inline;}

#mainMenu #noticeBoard .button{
 color: #666;
 border: 1px solid #DF9153;padding:2px;

#mainMenu #noticeBoard .button:hover{
 color: #fff;
 background: #DF9153;
 border-color: #DF9153;
|Author|Eric Shulman|
|Description|show/hide right sidebar (SideBarOptions)|
<<tiddler ToggleRightSidebar>>
<<tiddler ToggleRightSidebar with: label tooltip>>
Try it: <<tiddler ToggleRightSidebar##show
	with: {{config.options.chkShowRightSidebar?'►':'◄'}}>>
config.options.chkShowRightSidebar (false)
config.options.txtToggleRightSideBarLabelShow (◄)
config.options.txtToggleRightSideBarLabelHide (►)
<<tiddler {{
	var co=config.options;
	if (co.chkShowRightSidebar===undefined) co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
'';}}>><html><nowiki><a href='javascript:;' title="$2"
	var co=config.options;
	var opt='chkShowRightSidebar';
	var show=co[opt]=!co[opt];
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (this.innerHTML==labelShow||this.innerHTML==labelHide) 
	this.title=(show?'hide':'show')+' right sidebar';
	var sm=document.getElementById('storyMenu');
	if (sm) config.refreshers.content(sm);
	return false;
%/<<tiddler {{
	var src='ToggleRightSidebar';
}} with: {{
	var co=config.options;
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
}} {{
	var tip=(config.options.chkShowRightSidebar?'hide':'show')+' right sidebar';
!! Context

The project was held at Renault’s [[Technical Center for Simulation|http://www.experts.renault.com/kemeny/]], in partnership with the [[Multi-Agents Systems and Behavior Team|http://www.lifl.fr/SMAC/]] of the [[Computer Science Laboratory of Lille|http://www.lifl.fr]]. One of the missions of the Technical Center for Simulation is to develop and use driving simulators for study and research. These simulators are used for experiments in ergonomics, validation of embedded systems, comfort, or for the design and the validation of car lightings systems. The objective is to improve the drivers’ security, while reducing costs and delays in vehicles development.

<object type="application/x-shockwave-flash" data="video/player_flv_maxi.swf" width="400px" height="300px">
     <param name="movie" value="player_flv_maxi.swf" />
     <param name="FlashVars" value="flv=traffic_generators_scaner.flv&amp;configxml=video/flv_config_maxi.xml" />
!! Issues

In simulators, the driver is immersed in a simulated traffic, which realism is crucial for the validity of the results: the more realistic the environment is perceived, the more significant the drivers' reactions are. The wide range of drivers’ behavior is an important criterion for this realism: on the road, we are used to meet aggressive drivers, careful ones, etc. 

In individual-centered approaches, like traffic simulation in our case, the agents' behavioral variety is an important realism criteria. The behaviors also have to be consistent: if aberrant situations appear, the simulation realism is strongly impacted. In this work, we adressed the issue of the simultaneous influence of these two elements. Furthermore, this work was led in an industrial context. This involved taking into account specific needs: the designed tools had to allow experts specifying various and consistent behaviors, and final users easily using them.

!! Results

In this work, we proposed a behavioral differentiation model, which provides the basis for a generic and non-intrusive tool allowing an out-of-the-agent design. The model involves three dimensions. First, it describes the agents' behaviors using norms. They provide a behavioral pattern during conception, and a compliance reference during execution. Then, the generation process of the behaviors allows the creation of deviant or violating agents, by influencing the determinism of the mechanism. Finally, the norms can be inferred from previous simulations records or real data, providing an analysis tool of the results and allowing automating the model configuration. 

We applied the model to the traffic simulation in [[SCANeR|http://www.scaner2.com]]&trade;, the driving simulation software developed and used at the Technical Center for Simulation of Renault. The developments carried out during the thesis introduced driving styles in the traffic (e.g. cautious or aggressive drivers) specified using norms. The behavioral realism of the traffic was improved, and the experimentations show how the model contributes to the variety and the representativeness of the produced behaviors. Today, the behavioral differentiation model is part of the commercial version of the driving simulation software.

!! Related publications

Lacroix, B., Mathieu, M., & Kemeny, A. (2009). [[Generating Various and Consistent Behaviors in Simulations.|papers/generating_behaviors_paams09_lacroix.pdf]] In: Demazeau, Y., Pavon, J., Corchado, J., & Bajo, J. (Eds.), 7th International Conference on Practical Applications of Agents and ~Multi-Agent Systems. Advances in Intelligent and Soft Computing, vol. 55, pp. 110-119, Springer.

Lacroix, B., Mathieu, P., & Kemeny, A. (2008). [[A Normative Model for Behavioral Differentiation.|papers/normative_model_iat08_lacroix.pdf]] In Proceedings of the IEEE/WIC/ACM International Conference on Intelligent Agent Technology, pp. 96-99, Sydney, Australia.

//In french:// Lacroix, B. (2009). [[Normer pour mieux varier ? La différenciation comportementale par les normes, et son application au trafic dans les simulateurs de conduite.|papers/thesis_lacroix_2009.pdf]] Ph.D. thesis, University of Lille, France.
Here are some details on my work experiences, also available in my resume in [[english|cv/cv_benoit_lacroix_en.pdf]] or [[french|cv/cv_benoit_lacroix_fr.pdf]].

!! Technical project leader in renewables energies

2010-current (1.5 years), [[CEA|http://www.cea.fr]], [[LIST|http://www-list.cea.fr]] (Paris Area, 6,000 persons, applied research center)
(French Atomic Energy and Alternative Energies Research Center) 

Led an applied research project on energy efficiency in buildings using new energy sources, including solar thermal collectors, heat pumps and solar PV. Applications: improve energy efficiency in homes, integration into the Smart Grid.

*Manage the collaborative project between the CEA and the French National Institute of Solar Energy (INES) : organize and lead meetings, establish user requirement specifications, define objectives and deadlines, evaluate the results
*Propose an innovative approach to optimize energy consumption in buildings using new energy sources such as solar thermal systems, solar PV and heat pumps
*Develop a prototype for a proof of concept based on the proposed approach (Java). Application to compact units providing heating, cooling and hot water in buildings
*Develop a procedure and train the clients on the new solution: design and organize workshops and presentation
*Contribute to grants applications within French and European research funding schemes
*Proposed a first solution to the clients in less than 4 months, using rapid prototyping
*Successful simulations led to the implementation on a physical test bench at INES
*Two scientific papers submitted in peer-reviewed international conferences, project featured in the CEA's corporate magazine, patent pending
[[More details|EnergyEfficiency]] on this project.

!! Applied research engineer

2006-2009 (3 years), [[RENAULT|http://www.renault.com]] , [[Technical Center for Simulation|http://www.experts.renault.com/kemeny]] (Paris Area, 9,000 persons, automotive industry)

Elaborated and developed an innovative traffic simulation model for Renault's driving simulators. Applications include drivers’ training to achieve more energy efficient driving behaviors and reduction in costs and delays in vehicles development.

__Technical skills:__ Developed innovative solutions to a fundamental and technological problem 
* implemented and improved artificial intelligence technics in a virtual reality context
* developed 3 software modules (C++) now included in the [[business version of the software|http://ww.scaner2.com]]
* published 5 peer reviewed scientific papers, presented 6 papers in international conferences (see [[publications|Publications]])
* used to team-work development on huge and complex software (~1M lines, version control system)
__Project management skills:__  Supported the execution of a research project (3 years, 8 persons)
* managed the collaborative project between Renault, the company co-owning the software ([[Oktal|http://www.oktal.fr]]) and the [[Computer Sciences Laboratory of Lille|http://www.lifl.fr]]: organized and led meetings, followed-up collaboration contracts, defined objectives and deadlines, evaluated the results 
*  initiated and coordinated collaborations with foreign partners ([[Italy|http://www.unina.it]], [[USA|http://www.prtassoc.com]])
__Management skills:__
* supervised various service suppliers contracts (40 k€/year), including specifications, project following, user acceptance testing, sign off on the deliverable
* managed Master's degree's student, including recruitment, training and evaluation
[[More details|TrafficSimulation]] on this project. 

!! Research engineer in artificial intelligence

2006 (6 months), [[Computer Sciences Laboratory of Lille|http://www.lifl.fr]] (Lille Area, 150 persons, research laboratory), in collaboration with [[Alstom|http://www.alstom.com]] (transportation industry) //(internship)//

Elaborated an innovative crowd simulation model. Applications: subway design, fire safety simulation

*Propose an innovative crowd simulation model
*Develop a software prototype demonstrating the approach (Java)
*Project selected by the industrial to pursue direct R&D investments
*Published 2 peer reviewed scientific papers as first author (see [[publications|Publications]])
[[More details|CrowdsSimulation]] on this project

!! Software engineer

2004-2005 (1 year 1 month), [[AUCHAN|http://www.auchan.com]], Human Ressources Information Systems (Lille, 200 persons, retail industry) //(gap year internship)//

* Support the deployment of a web-based integrated [[workforce management solution|http://www.amano-tcs.co.uk/pages/uk/our-solutions/workforce-management.php]] for the French and Luxembourgian regions (55,000 persons):
** France: in charge of the user acceptance testing and sign off on the deliverable for the employees' activities management project
** Luxembourg: elaborate the functional specifications, parameterize the integrated solution, and conduct the learning experience feedback to implement the project in company's other subsidiaries
* Design and develop a dynamic website for worldwide company users (administration of the Human Resources Datawarehouse, C#/~ASP.Net/~DB2).
*Responsible for the sign off on the deliverable for the French employees' activities management project
*Success of the Luxembourgian project led to a global deployment in the group
*Developed website currently used in 9 different countries
Created with [[TiddlyWiki|http://tiddlywiki.org]]  @@<<tiddler ToggleRightSidebar with:".">>@@
//This ensures that the footer sticks to the bottom of the screen when there are no tiddlers open. If that is not desirable, it can be deleted.
function setFooter() {
         if (document.getElementById && document.getElementById("contentFooter") ) {
            var windowHeight=findWindowHeight();
         if (windowHeight>0) {
            var contentHeight= document.getElementById('mainMenu').offsetHeight + document.getElementById("header").offsetHeight + document.getElementById("contentFooter").offsetHeight;
            var menu= document.getElementById('mainMenu');
            if (windowHeight-(contentHeight)>=0) {
            else {
window.onresize = function() {

Story.prototype.refreshTiddler = function (title,template,force)
var theTiddler = Story.prototype.refreshTiddler_footerhack.apply(this,arguments);
   return theTiddler;}

if(config.options.txtUserName != "BenoitLacroix") {
    config.options.chkSinglePageMode = true;
    config.options.chkShowRightSidebar = false;
    readOnly = true;
    showBackstage = false;