<!DOCTYPE html>
<html lang="en"><head>
    <title>SUMO User Conference 2014 | Eclipse SUMO - Simulation of Urban MObility</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" href="https://www.eclipse.org/sumo/images/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon" href="https://www.eclipse.org/sumo/images/sumo_twitter.jpg">
    <meta name="description" content="Get in touch with our international user community">
    <meta name="theme-color" content="#338033">
    <meta name="twitter:card" content="summary">
    <meta name="twitter:image" content="https://www.eclipse.org/sumo/images/sumo_twitter.jpg">
    <meta name="twitter:site" content="@eclipsesumo">
    <meta property="og:title" content="SUMO User Conference 2014 | Eclipse SUMO - Simulation of Urban MObility">
    <meta property="og:description" content="Get in touch with our international user community">
    <meta property="og:site_name" content="Eclipse SUMO - Simulation of Urban MObility">
    <meta property="og:image" content="https://www.eclipse.org/sumo/images/sumo_share.png">
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://www.eclipse.org/sumo/2014/">
    <meta name="keywords" content="SUMO, Eclipse SUMO, Traffic Simulation, Mobility">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://www.eclipse.org/sumo/css/custom.css">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
    <script async defer src="https://buttons.github.io/buttons.js"></script>

    <script>
        window.onload = function check_if_ie() {
            var msie = window.navigator.userAgent.indexOf("MSIE ");
            if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
                document.getElementById("not_for_ie").style.display = 'none';
            }
            return false;
        }
    </script>

    
    

    

</head><body id="page-top"><!-- navigation -->

    
        <nav class="navbar navbar-expand-lg bg-light navbar-light fixed-top">
          <div class="container">
            <a class="navbar-brand" href="https://www.eclipse.org/sumo/"><img class="img-fluid" src="/sumo/images/logos/sumo-logo-white.svg" id="navbar-logo" style="pointer-events:none;" alt="SUMO logo"></a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar" aria-label="menu icon">
              <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse text-center" id="collapsibleNavbar">
              <ul class="navbar-nav ml-auto">
                
                  
                  <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true"
                      aria-expanded="false">
                      About
                    </a>
                    <div class="dropdown-menu">
                      
                      <a class="dropdown-item" href="https://www.eclipse.org/sumo/about">About SUMO</a>
                      
                      <a class="dropdown-item" href="https://projects.eclipse.org/projects/automotive.sumo/who">Who&#39;s involved</a>
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/docs/ChangeLog.html">ChangeLog</a>
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/daily">Status of daily build and tests</a>
                      
                    </div>
                  </li>
                  
                
                  
                  <li class="nav-item">
                    <a class="nav-link" href="https://sumo.dlr.de/download">Download</a>
                  </li>
                  
                
                  
                  <li class="nav-item">
                    <a class="nav-link" href="https://sumo.dlr.de/docs/">Documentation</a>
                  </li>
                  
                
                  
                  <li class="nav-item">
                    <a class="nav-link" href="https://www.eclipse.org/sumo/conference">Conference</a>
                  </li>
                  
                
                  
                  <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true"
                      aria-expanded="false">
                      References
                    </a>
                    <div class="dropdown-menu">
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/docs/Other/Projects.html">Projects</a>
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/docs/Publications.html">Publications</a>
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/docs/Contributed/index.html">Contributed extensions</a>
                      
                    </div>
                  </li>
                  
                
                  
                  <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true"
                      aria-expanded="false">
                      Support
                    </a>
                    <div class="dropdown-menu">
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/docs/FAQ.html">FAQ</a>
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/docs/Tutorials/index.html">Tutorials</a>
                      
                      <a class="dropdown-item" href="https://github.com/eclipse/sumo/issues">Report a Bug / Issue</a>
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/daily/doxygen/">Doxygen Documentation</a>
                      
                      <a class="dropdown-item" href="https://sumo.dlr.de/docs/Developer/index.html">Developer Documentation</a>
                      
                    </div>
                  </li>
                  
                
                  
                  <li class="nav-item">
                    <a class="nav-link" href="https://www.eclipse.org/sumo/contact">Contact</a>
                  </li>
                  
                
              </ul>
            </div>
            </div>
          </nav>

<!-- /navigation --><div id="content">
<section class="section">
  <div class="container-fluid header bg-gradient" style="padding: 40px 0 40px 0;">
    <div class="svg-rounded">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144.54 17.34" preserveAspectRatio="none" fill="#f8f8f8"><path d="M144.54,17.34H0V0H144.54ZM0,0S32.36,17.34,72.27,17.34,144.54,0,144.54,0"></path></svg>
    </div>
    <div class="text-center page-title" style="margin-top: 80px; color:#17412f;">SUMO User Conference 2014</div>
  
    
    <h4 style="text-align: center; color: #6d846e;">Modeling Mobility with Open Data</h4>
    
    <p style="text-align: center; color: #6d846e;"><i class="fas fa-calendar-alt"></i> May 15-16  &nbsp;&nbsp;•&nbsp;&nbsp; <i class="fas fa-map-marker-alt"></i> Berlin-Adlershof, Germany</p>
    
    
  </div>

  <div class="container">
    
    <div class="container"><div class="row">
    <div class="col-md-10 contact-div">
      
      

<h1 id="introduction">Introduction</h1>

<p>The SUMO2014 Conference was attended by over 50 participants from throughout Europe and America which presented two days of simulation results but also technical enhancements and new usage scenarios of the open source microscopic traffic simulation (<a href="http://sumo.dlr.de/2014/Proceeding_SUMO2014_15+16May2014_Berlin-Adlershof.pdf">Here</a> you can find the conference proceedings). A highlight was the keynote speaker Mario Krumnow (Technical University Dresden), who talked about &ldquo;Modeling Mobility with Open Data&rdquo; (here you can find his <a href="http://sumo.dlr.de/2014/Krumnow-OpenData2014.pdf">presentation</a> and <a href="http://sumo.dlr.de/2014/Krumnow-Simulation.zip">simulation</a>). The program was rounded off by numerous discussions on the edge and a panel discussion, which will promote further exchanges among other simulation scenarios.</p>

<p><strong>All those who contributed to the SUMO2014 conference:</strong><br />
<strong>Thank you for all your excellent work!</strong></p>

<p>This conference was a great success! So many people have contributed in so many ways to turn this event into a smoothly running meeting with many very interesting presentations and a very good atmosphere for discussion and networking.</p>

<p>Here are the participants of the SUMO2014</p>

<!-- image -->

<div class="container-fluid text-center" style="padding:0 !important;">
  <img src="../images/conference_2014.jpg" style="width:600px;" alt="Conference image" class="img-responsive" />
</div>

<p><strong>For participants:</strong></p>

<p>On your usb-drive you received a simulation scenario which is compatible with the upcoming release 0.21.0. You can find a version that is compatible with version 0.20.0 at the following location: <a href="http://sourceforge.net/projects/sumo/files/traffic_data/scenarios/iTETRIS_Bologna/iTETRIS_Bologna_joined-0.20.0.zip/download">download</a></p>

<h1 id="sessions-and-presentations">Sessions and Presentations</h1>

<p>Please find below the sessions of the conference with presentations linked where available.</p>

<p><strong>Traffic Light Systems</strong></p>

<ul>
<li><a href="http://sumo.dlr.de/2014/Presentation_Interface%20between%20proprietary%20controllers%20and%20SUMO_RobbinBlokpoel.pdf">Interface Between Proprietary Controllers and SUMO</a> (Robbin Blokpoel)</li>
<li>Stochastic Optimization of Advanced Signal Controls using A Parallelized Simulation Framework (Xiaoliang Ma)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_Network%20conversion%20for%20SUMO%20integration_RobbinBlokpoel.pdf">Network Conversion for SUMO Integration</a> (Robbin Blokpoel)</li>
</ul>

<hr />

<p><strong>Map Matching Algorithms</strong></p>

<ul>
<li>Advanced Traffic Light Information in OpenStreetMap for Traffic Simulations (David Rieck)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_RailwaySimulationLandscapeCreation_ChristianRahmig.pdf">A Railway Simulation Landscape Creation Tool Chain Considering OpenStreetMap Geo Data</a> (Christian Rahmig)</li>
<li>Map matching and cycling infrastructure analyses with SUMO and python (Joerg Schweizer)</li>
</ul>

<hr />

<p><strong>Intelligent Traffic Agents</strong></p>

<ul>
<li><a href="http://sumo.dlr.de/2014/Presentation_TowardsaMobile_JoaoGoncalves.pdf">A MultiAgent System driving simulator architecture: testing Advanced Driver Assistance Systems</a> (Joao Goncalves)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_SitAwarenessVehicles_VincentBaines.pdf">A situational awareness approach to intelligent vehicle agents</a> (Vincent Baines)</li>
<li>Methods enabling Simulations of V2X Applications regarding Emergency Vehicles in Urban Environment - Applied to Simulate a Preemption and Automated Cooperative Maneuvers of Individual Vehicles (Michael Duering)</li>
</ul>

<hr />

<p><strong>Keynote Speech</strong></p>

<ul>
<li><a href="http://sumo.dlr.de/2014/Presentation_Keynote_Open%20data%202014_MarioKrumnow.pdf">Modeling Mobility with Open Data</a> (Mario Krumnow) <a href="http://sumo.dlr.de/2014/Krumnow-Simulation.zip">Simulation Data</a></li>
</ul>

<hr />

<p><strong>Applications</strong></p>

<ul>
<li><a href="http://sumo.dlr.de/2014/Presentation_DFROUTER_TeRonNguyen.pdf">DFROUTER - Route estimate method based on detector data</a> (Nguyen Van Te Ron)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_Distributed%20SUMO_UlrichDangel.pdf">Can Road Traffic Volume Information Improve Partitioning for Distributed SUMO?</a> (Ulrich Dangel)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_TOMS_PetruPau.pdf">TOMS - Traffic Online Monitoring System for ITS Austria West</a> (Petru Pau)</li>
</ul>

<hr />

<p><strong>Applications II</strong></p>

<ul>
<li><a href="http://sumo.dlr.de/2014/Presentation_Traci4Matlab_JorgeOviedo.pdf">TraCI4Matlab: Re-engineering the Python implementation of the TraCI interface</a> (Jorge E. Espinosa Oviedo)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_BluetoothModelling_MichaelBehrisch.pdf">Modelling Bluetooth Inquiry for SUMO</a> (Michael Behrisch)</li>
</ul>

<hr />

<p><strong>New Features</strong></p>

<ul>
<li><a href="http://sumo.dlr.de/2014/Presentation_2ndGenEmissions_DanielKrajzewicz.pdf">2nd Generation of Pollutant Emission Models for SUMO</a> (Daniel Krajzewicz)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_LC2013_JakobErdmann.pdf">Lane-Changing Model in SUMO</a> (Jakob Erdmann)</li>
<li><a href="http://sumo.dlr.de/2014/Presentation_open_scenarios_LauraBieker.pdf">Traffic simulation for all: a real world traffic scenario from the city of Bologna</a> (Laura Bieker)</li>
</ul>

<h1 id="conference-information">Conference Information</h1>

<p>Traffic simulations are of immense importance for researchers as well as practitioners in the field of transportation. SUMO has been available since 2001 and provides a wide range of traffic planing and simulation applications. SUMO consists of a suite of tools covering road network imports and enrichment, demand generation and assignment and a state-of-the-art microscopic traffic simulation capable to simulate private and public transport modes, as well as person-based trip chains. Being open, SUMO is also ready to implement new behavioral models or to control the simulation remotely using various programming environments.</p>

<p>These and other features make SUMO one of the most used traffic simulations with a large and international user community. Further information about SUMO can be found at the project&rsquo;s web pages located at <a href="http://sumo-sim.org/">http://sumo-sim.org/</a>.</p>

<h1 id="contact">Contact</h1>

<p>Please contact the conference team via mail at <a href="mailto:sumo-conference@dlr.de">sumo-conference@dlr.de</a></p>

<p>The postal address is:</p>

<p>German Aerospace Center<br />
Institute of Transportation Systems<br />
Rutherfordstr. 2<br />
12489 Berlin<br />
Germany</p>
</div>
    <div class="col-md-2"><div style="border-left: 1px solid #d4d4d4; padding-left: 10px;">
<p class="sidebar-title"><b>Archive</b></p>
<div class="btn-group">
    <div class="dropdown">
    <button type="button" class="btn btn-light btn-archive btn-sm dropdown-toggle" data-toggle="dropdown" title="Explore previous conferences">Select year </button>
        <div class="dropdown-menu text-center">
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2020">2020</a>
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2019">2019</a>
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2018">2018</a>
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2017">2017</a>
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2016">2016</a>
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2015">2015</a>
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2014">2014</a>
            <a class="dropdown-item" href="https://www.eclipse.org/sumo/2013">2013</a>
            <a class="dropdown-item" href="https://sumo.dlr.de/docs/SumoWorkshop2010.html">Workshop 2010</a>
        </div>
    </div> 
</div>
<br><br><div class="d-none d-md-block"><p class="sidebar-title"><b>What's on this Page</b></p>
<nav id="TableOfContents">
<ul>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#sessions-and-presentations">Sessions and Presentations</a></li>
<li><a href="#conference-information">Conference Information</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</div></div></div>
    </div></div>
    
    
    
  
    
    <div class="d-flex justify-content-end"><a href="https://github.com/eclipse/sumo.website/edit/master/content/2014.md"><button type="button" class="btn btn-light btn-sm" title="Edit this page on GitHub"><i class="fas fa-pencil-alt"></i> Edit</button></a></div>
    
  </div>
</section>

        </div>
<button onclick="goTopFunction()" id="goToTop" title="Go to top"><i class="fa fa-arrow-up"></i></button>

  
  <div style="margin-top: 20px; font-size: 0;">
    <svg class="wave d-none d-md-block" style="display: block; pointer-events: none; height:100px; width: 100%;" fill="#ddd" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1920 75">
        <defs>
            <style>.a {fill: none;} .b {clip-path: url(#a);} .d {opacity: 0.5; isolation: isolate;}</style>
            <clipPath id="a"><rect class="a" width="1920" height="75"></rect></clipPath>
        </defs>
        <title>wave</title>
        <g class="b"><path class="c" d="M1963,327H-105V65A2647.49,2647.49,0,0,1,431,19c217.7,3.5,239.6,30.8,470,36,297.3,6.7,367.5-36.2,642-28a2511.41,2511.41,0,0,1,420,48"></path></g>
        <g class="b"><path class="d" d="M-127,404H1963V44c-140.1-28-343.3-46.7-566,22-75.5,23.3-118.5,45.9-162,64-48.6,20.2-404.7,128-784,0C355.2,97.7,341.6,78.3,235,50,86.6,10.6-41.8,6.9-127,10"></path></g>
        <g class="b"><path class="d" d="M1979,462-155,446V106C251.8,20.2,576.6,15.9,805,30c167.4,10.3,322.3,32.9,680,56,207,13.4,378,20.3,494,24"></path></g>
        <g class="b"><path class="d" d="M1998,484H-243V100c445.8,26.8,794.2-4.1,1035-39,141-20.4,231.1-40.1,378-45,349.6-11.6,636.7,73.8,828,150"></path></g>
    </svg>
  </div>

<div class="d-block d-md-none" style="margin-top:20px;"></div>
  <footer class="footer" style="background: #ddd; margin-top: 0px; padding-top: 20px;">
          <div class="container">
            <div class="row" style="margin-bottom: 16px;">
              <div class="col-md-12">
          <div class="container-fluid">
          <div class="row" style="font-size: small;">
                  <div class="col-md text-left"><b>SUMO</b>
                  <ul class="ul-no-bullet">
                  <li><a href="https://www.eclipse.org/sumo/about">About</a></li>
                  <li><a href="https://sumo.dlr.de/docs/Downloads.html">Downloads</a></li>
                  <li><a href="https://sumo.dlr.de/docs/ChangeLog.html">ChangeLog</a></li>
                  <li><a href="https://sumo.dlr.de/docs/Libraries_Licenses.html">License</a></li>
                  <li><a href="https://sumo.dlr.de/docs/Other/Projects.html">Projects using SUMO</a></li>
                  <li><a href="https://sumo.dlr.de/docs/Publications.html">Publications</a></li>
                  </ul>
                  </div>
                  <div class="col-md text-left"><b>Project</b>
                    <ul class="ul-no-bullet">
                      <li><a href="https://projects.eclipse.org/projects/automotive.sumo/who">Who's involved</a></li>
                      <li><a href="https://sumo.dlr.de/daily/">Status of daily build and tests</a></li>
                      <li><a href="https://www.github.com/eclipse/sumo">GitHub repository</a></li>
                      <li><a href="https://www.github.com/eclipse/sumo.website">Website GitHub repository</a></li>
                      <li><a href="https://sourceforge.net/projects/sumo/">SourceForge</a></li>
                      <li><a href="https://dlr.de/ts/sumo">SUMO @ DLR</a></li>
                      <li><a href="https://projects.eclipse.org/projects/automotive.sumo">SUMO @ Eclipse</a></li>
                    </ul>
                  </div>
                  <div class="col-md text-left"><b>Community</b>
                    <ul class="ul-no-bullet">
                      <li><a href="https://www.eclipse.org/sumo/contact">Mailing lists</a></li>
                      <li><a href="http://sumo-user.90755.n8.nabble.com/">Forum</a></li>
                      <li><a href="https://www.eclipse.org/sumo/conference">SUMO User Conference</a></li>
                      <li><a href="https://openmobility.eclipse.org/">openMobility Working Group</a></li>
                    </ul>
                  </div>
                  <div class="col-md text-left"><b>Support & Training</b>
                    <ul class="ul-no-bullet">
                    <li><a href="https://www.eclipse.org/sumo/contact">Contact us</a></li>
                    <li><a href="https://sumo.dlr.de/docs/FAQ.html">FAQ</a></li>
                    <li><a href="https://sumo.dlr.de/docs/index.html">Documentation</a></li>
                    <li><a href="https://sumo.dlr.de/docs/Developer/index.html">Developer Documentation</a></li>
                    <li><a href="https://sumo.dlr.de/daily/doxygen/">Doxygen Documentation</a></li>
                    <li><a href="https://sumo.dlr.de/docs/Tutorials/index.html">Tutorials</a></li>
                    <li><a href="https://github.com/eclipse/sumo/issues">Issue Tracking</a></li>
                    </ul>
                  </div>
                  <div class="col-md text-left"><b>Eclipse Foundation</b>
                    <br>
                    <a href="https://www.eclipse.org/"><img class="img-fluid" src="https://www.eclipse.org/sumo/images/logos/eclipse-logo.png" alt="Eclipse Foundation logo" style="margin:10px 0; width: 100px;"></a>
                    <ul class="ul-no-bullet">
                    <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
                    <li><a href="https://www.eclipse.org/legal/termsofuse.php">Website terms of use</a></li>
                    <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright</a></li>
                    <li><a href="https://www.eclipse.org/legal">Legal</a></li>
                    </ul>
                  </div>
          </div>
          </div>
    
              </div>
              
              
            </div>
            <hr>
            <div class="text-center">Made with <i class="fas fa-heart" style="color: red;"></i> in Berlin</div>

                <br>
             
          </div>
  </footer>
  
  <script>
 
    window.onscroll = function() {scrollFunction()};
    
    function scrollFunction() {
      if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
        document.getElementById("goToTop").style.display = "block";
        document.getElementById("navbar-logo").style.maxWidth = "60%";
      } else {
        document.getElementById("goToTop").style.display = "none";
        document.getElementById("navbar-logo").style.maxWidth = "100%";
      }
    }
  
    function goTopFunction() {
      document.body.scrollTop = 0;
      document.documentElement.scrollTop = 0;
    }
  </script>
</body>
</html>