Changes Report

Release History

Version Date Description
1.05.00 2022-02-08 update to latest versions of dsol, djunits, djutils
1.04.04 2020-11-01 Moved demos and research projects to OTS-RESEARCH
1.04.03 2020-10-22 Enable Control Panel buttons
1.04.02 2020-08-11 New version of djutils, dsol
1.04.01 2020-02-10 New version of djutils, dsol - TimedEvent
1.04.00 2019-12-23 New version of djunits, djutils, dsol
1.03.01 2019-12-22 XML parsing extended, Conflicts
1.03.00 2019-10-12 xsd-parser, ots-web ready; gradual lane change
1.02.02 2019-10-10 ots-xsd; GTUType, LinkType, LaneType in Defaults
1.02.01 2019-04-19 ots-xsd; GTUType, LinkType, LaneType in Defaults
1.01.01 2019-03-16 ots-xsd project; geotools dependency removed
1.01.00 2019-01-19 Update to ots 1.01.00, djutils, animation, major refactoring
1.00.02 2018-09-20 Demo repairs, ots-aimsun integrated, Logger
1.00.01 2018-09-19 Major upgrade
0.16.00 2018-09-17 Release 0.16.00
0.15.00 2017-04-30 Release 0.15.00
0.14.00 2017-04-17 Release 0.14.00
0.13.04 2017-01-16 Intermediate Release 0.13.04
0.13.03 2017-01-05 Intermediate Release 0.13.03
0.13.02 2017-01-03 Intermediate Release 0.13.02
0.13.01 2016-12-20 Intermediate Release 0.13.01
0.13.00 2016-12-11 Sprint 8
0.12.02 2016-11-20 Intermediate Release 0.12.02
0.12.01 2016-11-07 Intermediate release 0.12.01
0.12.00 2016-11-02 Sprint 7
0.11.00 2016-10-07 Sprint 6
0.10.00 2016-08-28 Sprint 5
0.09.00 2016-05-27 Sprint 4
0.08.00 2016-04-08 Sprint 3
0.07.00 2016-03-15 Sprint 2
0.06.00 2016-01-27 Sprint 1
0.05.00 2015-12-20 Major upgrade

Release 1.05.00 – 2022-02-08

Type Changes By
Update This project will not be actively maintained anymore -- code moved to the OTS2 (opentrafficsim2) project. averbraeck
Update Updated the code to the latest version of dsol, djunits, djutils. averbraeck

Release 1.04.04 – 2020-11-01

Type Changes By
Update Large XML-demos moved to project ots-demo-xml on OTS-RESEARCH svn site. averbraeck
Update CACC code moved to project ots-cacc on OTS-RESEARCH svn site. averbraeck
Update Research projects ots-nissan, ots-opendrive, ots-vissim, various ots-parsers moved to OTS-RESEARCH svn site. averbraeck

Release 1.04.03 – 2020-10-22

Type Changes By
Update The OTSSimulationPanel and OTSAnimationPanel have a method to enable and disable the control buttons to start/stop a simulation / animation. By default, the buttons are now DISABLED to allow for set-up and initialization to complete before the user can interact with the simulation through the user interface. Therefore, ALL simulations have to call simulationPanel or animationPanel.enableSimulationControlButtons() to enable the buttons. The AbstractSimulationScript already activates the buttons at the end of the start() method. averbraeck

Release 1.04.02 – 2020-08-11

Type Changes By
Update DJUTILS and DSOL have been updated to the latest versions. averbraeck
Fix StraightModel in the demos did not use a proper generator with a room checker, and with a large truck fraction the model run resulted in car collisions. This has been repaired. averbraeck
Fix Removed the Eclipse project dependencies of ots-aimsun on other projects. averbraeck
Remove Removed the ots-sim0mq-road and ots-sim0mq-multimodal projects as they were not used. The ots-sim0mq project also contains all code for road objects such as lanes. averbraeck
Add Added a project ots-sim0mq-swing for the swing-dependent components of sim0mq, such as model remote control. averbraeck
Update Moved the swing-dependent components of sim0mq, such as model remote control to ots-sim0mq-swing. averbraeck
Update Adapted the site web pages to the new ots-sim0mq structure. averbraeck

Release 1.04.01 – 2020-02-10

Type Changes By
Update DJUTILS and DSOL have been updated to contain TimedEvents and strongly typed events rather than events that can take any payload. averbraeck
Fix The latest version of DSOL has a much more strict state machine that prevents unclear states between stopping the simulator from the outside and actually stopping of the run thread of the simulator. This solves problems with the runUntil() methods. averbraeck
Update The OTSNetwork now has the simulator stored in the network, which can prevent all classes to have to store a pointer to the simulator in addition to storing a pointer to the network. pknoppers

Release 1.04.00 – 2019-12-23

Type Changes By
Update Code has been adapted to the changes in DSOL, DJUNITS and DJUTILS. Several constructors, methods and package names changed. averbraeck
Update DJUNITS has been updated to version 4.01.05. Several new units have been added that can be useful for driving and driving simulators, such as the Momentum, the AngularVelocity and the AngularAcceleration. averbraeck
Update DJUTILS has been updated to version 1.04.05. DJUTILS now contains the Event package that originally was within DSOL. The new EventProducer demands that there is a serializable sourceId for each EventProducer that is sent as the source of the event that is fired with the fireEvent method. This leads to changes in the Model (extra method needed) as well as the construction of the Simulator (extra argument needed). By the way, the sourceId can be any object as long as it is serializable, so also 'this' is allowed. For the GTU and the Lane, 'this' is sent as the source to allow receiving notify methods to identify the sender. averbraeck
Update The way the SimLogger works has been updated to prepare the SimLogger to be able to log to different streams per (parallel) running simulation. Therefore, the construction simulator.getLogger().always()... or getSimulator().getLogger().filter()... is used to log to the simulator-dependent SimLogger. Where this was impossible, the CategoryLogger has been used instead. averbraeck
Update DSOL has been updated to version 3.04.01. The event package has been moved from DSOL to DJUTILS. This resulted in name changes for the packages of the EventProducer, EventListener, EventType and Event. In addition, the naming package has been extensively updated, resulting in a different registration of the animation and statistics. averbraeck

Release 1.03.01 – 2019-12-22

Type Changes By
Fix com.sun.xml.bind package gone; replaced by javax.xml.bind:jaxb-api and org.glassfish.jaxb:jaxb-runtime. JAXB version updated to 2.3.1. averbraeck
Fix XML files adapted for new DJUNITS standards. averbraeck
Add Parallel implementations of ConflictBuilder for large networks. averbraeck
Add OTS-XML: Extending the LINK tag with a possibility to store a ConflictID for a guided generation of conflicts. The XMLParser and ConflictBuilder have been extended to allow for the usage of the ConflictID information. averbraeck
Add The Node has an isCentroid() method indicating that it has links, and all of those links are connectors. averbraeck
Add OTSNetwork has a new method called getUnbalancedCentroids to provide a list of Centroid nodes that have incoming connectors without corresponding outgoing connectors to the same node or vice versa. averbraeck
Add DestinationSensor has been added to deal with only destroying the GTUs that have reached their destination, and not every GTU that happens to pass the sensor (as was the case with the SinkSensor used for this purpose). averbraeck

Release 1.03.00 – 2019-10-12

Type Changes By
Update DJUNITS has been updated to 4.01.03, to be ready for Java9+ (tested with Java-13). As the structure of the Scalars, Vectors and Matrices has changed, this caused quite a number of changes in ots classes. averbraeck
Update DJUTILS has been updated to 1.03.02, enabling the CLI utilities in djutils-ext. This version is also ready for Java 9+ (and tested with Java-13). averbraeck
Update DSOL has been updated to 3.03.12. This version is also ready for Java 9+ (and tested with Java-13). averbraeck
Update SIM0MQ has been updated to 2.00.01, enabling new message components of sim0mq version 2. This version is also ready for Java 9+ (and tested with Java-13). It is dependent on the latest version of djutils-serialization, which is included as of DJUTILS version 1.03.00. Note that the message structure of sim0mq version 2 is not compatible with sim0mq version 1. averbraeck

Release 1.02.02 – 2019-10-10

Type Changes By
Add CLI utilities built into the demo project. averbraeck
Update XmlNetworkLaneParser in ots-parser-xml now also takes a URL as basis for the parsing. This helps with the fallback of the imports when no network is available, and with parsing from files from within a jar. averbraeck
Fix Fallback options for xinclude in the xml files provided to guarantee parsing during offline use. averbraeck
Update All HashMaps updated to LinkedHashMap and all HashSets updated to LinkedHashSet to guarantee reproducibility. averbraeck
Add ots-web is now completely working. Animation is sent to the web client, and actions such as zooming, panning, introspection, starting and stopping of the simulation clock have all been implemented. averbraeck
Add XML parsing of TRAFCOD traffic control can now be done through XML, including the visual representation and the TRAFCOD program. pknoppers
Add Gradual lane changes have been introduced. wjschakel
Update DJUTILS updated to 1.00.06 to use ImmutableEntry in the ImmutableMap. averbraeck
Update DSOL updated to version 3.03.07 to solve 'jumps' in the animation, to 3.03.08 to repair the min/max settings in the InputParameters, and to 3.03.09 for some bugs in InputParameters and the size of the extent in Swing. averbraeck
Update On a SHORTESTROUTE, either DISTANCECOST or TIMECOST or both should be present now. averbraeck
Update All demos that use an xml-parser in ots-demo have been upgraded to the latest xml-format and parser. averbraeck
Update DJUNITS version updated to 3.01.04. averbraeck
Update Explicit error messages added to the XML adapters, as JAXB silently ignores the exceptions. averbraeck
Update All ROUTE information moved to the NETWORKDEMAND tag instead of the NETWORK tag. averbraeck
Update xml code in the ots-demo project updated to the latest xsd-standard. averbraeck
Update In the xsds, SIGNEDLENGTHTYPE is now LENGTHTYPE. The old LENGTHTYPE (which had to be non-negative) is now called POSITIVELENGTHTYPE. averbraeck
Update In the xml NETWORK tag: NODE, LINK and CONNECTOR entries can be mixed to allow for subnetworks to be kept together. averbraeck
Add An extra attribute called FIXGRADUALOFFSET has been added to the LINK definition in XML, and a parameter called fixGradualLateralOffset has been added to constructors of CrossSectionElement, Lane, Shoulder, NoTrafficLane, RoadMarkerAlong, Stripe. This either gradually offsets the line with a sine wave or not when the lateral offset changes. Default false. averbraeck

Release 1.02.01 – 2019-04-19

Type Changes By
Update EASTING replaces NORTHING in Scalar3D, Speed3D, Acceleration3D, Clothoid, AngleUnits. averbraeck
Update DSOL version 3.03.06 to allow for introspection of Maps and ImmutableCollections. averbraeck
Update NodeAnimation now work with a delegate animation class (new in DSOL 3.03.06) to allow for increasing the Z-value for display, but not increasing it in the Node itself. When introspecting the NodeAnimation.ElevatedNode, the information of the actual Node that delegated the animation is shown instead. averbraeck
Add Extensive work on the xsd files to parse complex files. All categories of the xsd have been changed. The old parser is still present, and will be removed in one of the future versions. averbraeck
Remove OvertakingConditions have been removed from the Lane. Overtaking is not something that concerns single lanes. averbraeck
Update ots.xsd and this changes file got an xml:space="preserve" tag to indicate that the formatter should not mess with text strings. A changed xsd=file is therefore included in the changes folder. averbraeck
Update The GTUType does not have static definitions anymore, to allow alternative GTUTypes for different situations. An enum called GTUType.DEFAULTS has been added that indicates the names of the GTUTypes that are defined by default. GTUTypes are registered in the Network, and can be retrieved from the network. A method called addDefaultGtuTypes() has been added to the network to instantiate all default types in a default way. averbraeck
Update The LinkType does not have static definitions anymore, to allow alternative LinkTypes for different situations. An enum called LinkType.DEFAULTS has been added that indicates the names of the LinkTypes that are defined by default. LinkTypes are registered in the Network, and can be retrieved from the network. A method called addDefaultLinkTypes() has been added to the network to instantiate all default types in a default way. averbraeck
Add An interface called 'Definitions' has been added that allows to retrieve the LinkTypes and GTUTypes defined in the current context. Both the Network interface and the PerceivableContext interface inherit from Definitions, so both the GTUs and the Nodes/Links have access to the definitions that exist in the current simulation context. averbraeck
Update The constructor of the OTSNetwork (and OTSRoadNetwork) has been given an boolean whether to construct the defaults or not. averbraeck
Update The LaneType does not have static definitions anymore, to allow alternative LaneTypes for different situations. An enum called LaneType.DEFAULTS has been added that indicates the names of the LaneTypes that are defined by default. LaneTypes are registered in the RoadNetwork, and can be retrieved from the road network. A method called addDefaultLaneTypes() has been added to the RoadNetwork to instantiate all default types in a default way. averbraeck
Add In order to give specific definitions to the network for Roads, a RoadNetwork interface and an OTSRoadNetwork class have been added. These hold for instance information about the LaneTypes. averbraeck
Add An interface called 'RoadDefinitions' has been added that allows to retrieve the LaneTypes defined in the current context. The RoadNetwork interface inherit from Definitions (and therefore the OTSRoadNetwork class implements the interfaces), so both the LaneBasedGTUs and the Nodes/Links have access to the Lane definitions that exist in the current simulation context. As RoadDefinitions inherits from Definitions, LinkTypes and GTUTypes are also accessible. averbraeck
Unknown All code and demos has been adapted to work with the new GTUType, LinkType, LaneType, Definitions, and RoadDefinitions.

Release 1.01.01 – 2019-03-16

Type Changes By
Add XSDs versioned. averbraeck
Add New folder for xsds on the Web: https: averbraeck
Update All demos now reference the new xsds (and the old parser). averbraeck
Fix All xmls and xsds (including pom.xml, site.xml, and others) are error free with validation. averbraeck
Update ots-xsd: bindings.xsd renamed to bindings.xml (it is an xml...) averbraeck
Update ots-xsd: pom.xml updated with latest changes. averbraeck
Update ots-xsd: ROADTYPE renamed to LINKTYPE, consistent with java naming. averbraeck
Update ots-xsd: defaults files for definitions added. averbraeck
Update Naming of a few GTUTypes changed (WATER_WAY => WATERWAY; RAIL_WAY => RAILWAY) averbraeck
Add Default GTUTypes XML file added to ots-xsd project. In order to do so, GTUTYPES tag with multiple GTUTYPE entries added to DEFINITIONS. averbraeck
Update djunits version has been updated to 3.01.01, which includes Scalar.stringOf(SomeScalar) and e.g., Length.valueOf(String). averbraeck
Update djutils version has been updated to 1.00.05, which includes the ImmutableCollections (static) class. averbraeck
Update In XML-parsing, the use of nodes and links has been simplified. All nodes have to be given full coordinates. Slope and direction are calculated automatically. Lengths for links do not have to be provided as a result; they will be calculated and correspond to the actual lengths of what is drawn, not the theoretical lengths. An arc has a theoretical length that is different from the e.g., 32 or 64, segments from which it is created, and algorithms make false calculations based on the difference between the length of OTSLine3D and the provided length of the link. Arcs, Bezier curves, clothoids, polylines and straight segments can have a slope. The correct length including the slope is calculated (note that this this differs from the length of the projection in the animation). averbraeck
Update In XML-parsing, directions are taken as ENU (East=x, North=y, z=up) coordinates, where absolute direction goes counter-clockwise. E = +x = 0 degrees, N = +y = 90 degrees, W = -x = 180 degrees, S = -y = 270 degrees. See averbraeck
Update ots-types.xsd got several changes: DURATIONTYPE has been added, and all relative times in ots-network.xsd have been changed to DURATIONTYPE. PERTIMETYPE has been renamed to FREQUENCYTYPE. VEHICLESTYPE has been renamed to VEHICLEINTENSITYTYPE. VEHICLESPERTIMETYPE has been renamed to VEHICLEFREQUENCYTYPE. DIRECTIONTYPE has been added. ANGLETYPE has been replaced by DIRECTIONTYPE where an absolute angle was intended. The old DIRECTIONTYPE that indicated the driving direction of a vehicle has been renamed to DRIVINGDIRECTIONTYPE. averbraeck
Add JAXB parsing has been introduced in the new ots-xsd project. averbraeck
Add OTS-383. Develop fixed time traffic light control. Fixes OTS-383. wjschakel
Update OTS-382. Apply lazy evaluation and memoization in perception categories. Fixes OTS-382. wjschakel
Add OTS-381. Allow Anticipation Reliance in the Mental module. Fixes OTS-381. wjschakel
Update ots-core was dependent on the heavyweight geotools project. Except for the projects where maps are parsed, 99% of geotools was not used. Therefore, ots-core has been made dependent on the jts project instead. The version of jts that is used is compatible with geotools. Therefore, ots-parser-shape and ots-demo can easily use the geotools extension, while still being compatible with definitions for Point, Coordinate, Geometry, etc. in ots-core. averbraeck
Fix A small typo was made in the url of the osgeo repository. This has now been corrected. averbraeck

Release 1.01.00 – 2019-01-19

Type Changes By
Update All demos and tests have been updated and repaired to be in line with DSOL version 3.03. averbraeck
Fix GTUIDColorer used the following formula for the color: <pre> LEGEND.get(gtu.getId().hashCode() % LEGEND.size()).getColor() </pre> However, (-2 % 10) returns -2 in Java. Therefore, the GTUIDColorer failed. Changed to always return a positive number using Math.abs(). averbraeck
Update The OTSReplication now has a compulsory id. This is in line with the new DSOL 3.03 Replication class. averbraeck
Update DSOL version has been updated to 3.03.05. averbraeck
Update djutils version has been updated to 1.00.02. averbraeck
Update HexDump class and package have been moved to djutils. averbraeck
Update The means package has been moved from ots to the djutils project. pknoppers
Update Copyright years updated to 2019. averbraeck
Update The DSOL version has been updated to 3.03. This has quite a number of consequences. Examples are anew use of the DSOLModel, more time-based inner classes of the Simulators, DistContinuousTime has been renamed intoDistContinuousSimulationTime, models have specified input parameters and output parameters, which makes the use of the ModelPropertiessuperfluous, charts have been moved into one class each, etc. See for more information. averbraeck
Add Three projects for OTS animation have been added. ots-swing for animation using Swing and ots-web for animation using the Web. The generic drawing clases that are used for ots-swing and ots-web (using a virtual screen for ots-web) are in the project ots-draw-swing. averbraeck
Update The swing-specific classes of ots-core and ots-road have been moved to the ots-swing project. This makes the core OTS classes independent from swing, so versions running on servers, or using the web or sim0mq can guarantee no swing code is executed. averbraeck
Update Because the animation classes have been moved from the dsol-core and dsol-road project, code such as the following in one of the base packages or in the parsers is not possible anymore: <pre> if (simulator instanceof AnimatorInterface) new LaneAnimation(newLane, simulator, color, false); </pre> Instead, animation has to be added in the application, specifically for Swing, JavaFX, or the Web. If drawing data has to be stored for specific types of objects or for specific instances (line width, outline color, drawing color, etc.), this has to be done in separate objects, which are e.g., accessible via a Map<Road, DrawingInfo> or a Map<Class<?>, DrawingInfo>, where the DrawingInfo can be specified by the user. A first implementation of DrawingInfo has been included in ots-core, in the [ots].core.animation package. This object can be used by different visualizations. averbraeck
Update The Try class has been moved to the DJUTILS project. averbraeck
Update The demo in the ots-parser-shape project and the A58 data has been moved to the src/test/java and src/test/resources locations. averbraeck
Update The [ots].gtu.animation package has been renamed to [ots].gtu.colorer. averbraeck
Fix The destroy() method of DefaultCarAnimation is repaired to not call Renderable2D.destroy() twice. averbraeck
Add A program called ParamComments has been added in ots-build-tools to help enter/repair the correct types in the @param entries in the method comments. All classes have been repaired using this program. After running the utility, do a refresh on all projects, followed by a Source - Format. averbraeck
Fix The .classpath files have a classpathentry for /src/main/resources after a Maven Update with an entry 'excluding="**" kind="src"'. The exclusion means that the export of a Runnable jar in Eclipse does not work. Therefore this update on svn ensures that the export of a jar file works. Ensure that after each Maven Update in Eclipse, the "Excludes:" entry for /src/main/resources in each project's Properties - Build path - Source is set to (None) before committing the sources! averbraeck
Add A small program called CleanClassfileFiles has been added to ots-build-tools to help in setting the exclusions correctly in the build path. After running this program, do a Project - Clean - All. averbraeck
Fix The pom file in aimsun-proto was not properly compiling the proto-files within Eclipse. Following the suggestions in the problem was solved. A readme.txt in the root of the ots-aimsun-proto project provides instructions. averbraeck
Update The CategoryLogger and SimLogger have been moved to dsol-base, so dsol can use the same loggers. As a result it becomes easier to e.g., suppress dsol logger-messages and still see ots logger messages. averbraeck
Fix ots-core: toString() method of OTSCapacityNode made non-final. averbraeck
Fix ots-ntm project updated to latest ots, dsol, and djunits version. averbraeck
Fix Recent Java-8 compilers are more strict on generics. Therefore the class definition of ToledoPerception has been adapted as follows: public class ToledoPerception extends LaneBasedAbstractPerceptionCategory implements LaneBasedPerceptionCategory. DirectEgoPerception's class definition has been updated to: public class DirectEgoPerception<G extends GTU, P extends Perception<G>> extends AbstractPerceptionCategory<G, P> implements EgoPerception<G, P> averbraeck
Update The projects have been adapted to the latest Eclipse version (4.8; Photon). Test sources and classes are more strictly separated from regular classes. This asked for several small changes in the Eclipse environment that have been included in the .classpath file in the root folder of the projects. averbraeck

Release 1.00.02 – 2018-09-20

Type Changes By
Fix Demo CircularRoad + LMRS fixed; dynamic extension of the LaneStructure was not correct. wschakel
Fix Demo Merge 1 plus 1 into 1: CanPlaceDemoCode replaced by CFRoomChecker; CanPlaceDemoCode still used IDMOld. wschakel
Fix Demo LoadXML with an aimsun network has been repaired. wschakel
Add ots-aimsun-proto, ots-aimsun-demo and ots-aimsun projects are now part of ots. The proto-compiler is loaded dynamically based on the OS version and protobuf-version. protobuf compiles into src/main/java so other projects can use the generated code. averbraeck
Add ots-base now has a logger package, where proper logging using tinylog will be developed. Instead of system.out.println, system.err.println, DEBUG messages, and other output that cannot be sent to file or a Console will be removed step-by-step and replaced by calls to the Logger. averbraeck

Release 1.00.01 – 2018-09-19

Type Changes By
Update Using newest version of DSOL. Removing several classes for OTSSimulator as these are perfectly covered using DJUNITS by DSOL 3.02 and up. averbraeck
Update Updating all used jars to the latest version. Updating all Maven packages to the latest version. averbraeck
Update The mocking package jmockit needs to set agent-injections for junit tests in the latest version. Therefore jmockit has been replaced by Mockito + Powermock (also known as PowerMockito). The mocking structure for the tests had to be adapted to this new structure. averbraeck
Update As log4j2 is quite complicated to configure, it has been replaced by the faster and smaller tinylog package. averbraeck
Update As a result of the above updates, around 3000 smaller and larger changes had to be made to the code base. averbraeck
Update Site structure and Velocity files changed to comply with the latest maven-site plugin. averbraeck

Release 0.16.00 – 2018-09-17

Type Changes By
Update OTS-331. Change ParameterTypes to referenced Types. Fixes OTS-331.
Fix OTS-337. RoadSampler that starts for t>0s may give a NullPointer. Fixes OTS-337.
Update OTS-333. Create interface for getId(). Fixes OTS-333.
Update OTS-332. Make GTUType and LaneType hierarchal. Fixes OTS-332.
Add OTS-345. Create utility to apply an OD matrix on the network. Fixes OTS-345.
Update OTS-346. Streamline parameter creation using factories. Fixes OTS-346.
Add OTS-347. Create Generator<O> for constant values. Fixes OTS-347.
Add OTS-349. Provide default GTUCharacteristics for GTUTypes. Fixes OTS-349.
Fix OTS-350. Acceleration <-10m/s^2 at vehicle generation with LMRS. Fixes OTS-350.
Add OTS-353. Markov chains in vehicle generation. Fixes OTS-353.
Add OTS-352. Division of origin demand over multiple links and lanes. Fixes OTS-352.
Add OTS-354. Remove initial speed and position from LaneBasedGTUCharacteristics. Fixes OTS-354.
Fix OTS-358. Different simulation outcome in debugger mode. Fixes OTS-358.
Add OTS-359. Add origin and destination to strategical planner. Fixes OTS-359.
Fix OTS-360. Clean up GTU Renderable2D raw code. Fixes OTS-360.
Add OTS-361. No lane change distance in LaneBasedGTUGenerator and ODOptions. Fixes OTS-361.
Update OTS-147. Tactical planner methods for GTU generation. Fixes OTS-147.
Add OTS-355. Tools for perception in the recent past. Fixes OTS-355.
Update OTS-364. Dynamic LaneStructure. Fixes OTS-364.
Add OTS-365. Historical Collections. Fixes OTS-365.
Add OTS-366. Iterable perception. Fixes OTS-366.
Add OTS-372. Add detector. Fixes OTS-372.
Fix OTS-373. GTU initialization; events and operational plan. Fixes OTS-373.
Update OTS-374. Gradual lane changes and exact lane and sensor events. Fixes OTS-374.
Update OTS-375. Add lane choice at split function to tactical planner. Fixes OTS-375.
Update OTS-376. Offset at start and end for all cross-section elements. Fixes OTS-376.
Update OTS377. Add YIELD and TOR to priority. Fixes OTS-377.
Update OTS378. Allow demand to be split over several connectors. Fixes OTS-378.
Fix OTS380. GTU-Lane connections with instantaneous lane changes. Fixes OTS-380.

Release 0.15.00 – 2017-04-30

Type Changes By
Add OTS-126. Add class for a speed sign. Fixes OTS-126.
Add OTS-156. Make conflicts GTUType dependent. Priority at conflicts may depend on the GTUType, e.g. at some conflicts, trams have absolute priority over cars, but cars may behave according to a right-has-priority rule. Fixes OTS-156.
Update OTS-217. Initial operational plans and lane changes. In some cases, tactical planners should not create an operational plan containing a lane change. E.g. filling the network at t=0, some surrounding GTUs may not yet be generated. Fixes OTS-217.
Add OTS-319. Alignment with DJUNITS 3.00. Units for absolute and relative values have been separated. They are truly different and should never have been mixed. As an example, an AbsoluteTemperature of 10 degrees Celsius has an offset of 283.15 Kelvin from absolute zero. A relative temperature of 10 degrees Celsius, however, is equivalent to 10 Kelvin, and does not have any offset. The same holds for Direction, Time, and Position. This has quite some effects on the code, as TimeUnits in Durations had to be replaced with a DurationUnit. Same for Directions that now have their own DirectionUnit (e.g., NORTH_RADIANS: radians relative to NORTH, or EAST_DEGREES: degrees relative to EAST). Time can be stated relative to the POSIX Epoch (1-1-1970), AD 1, or the J2000.1 Epoch. Fixes OTS-319.
Fix OTS-320. SpeedSign ENDOFDAY. Fixes OTS-320.
Add OTS-321. AIMSUN classes have to go into ots-aimsun project. ots-aimsun for aimsun classes on the OTS side. ots-aimsun-demo for demos with aimsun classes. ots-aimsun-proto for proto files and generated classes. The last one is important to separate because of suppression of javadoc and formatting error messages because of checkstyle. Fixes OTS-321.
Fix OTS-325. Toledo demos complain about missing TacticalPlanner. Fixes OTS-325.
Fix OTS-327. Demo Crossing with Traffic Lights has a casting error. There was still a reference to the TimeUnit in the typed distributions, where a DurationUnit should have been used. This has been solved in all four typed Distributions. Fixes OTS-327.
Fix OTS-328. TRAFCOD2 demo does not start anymore. To make the registration work better in the OTSNetwork, the name of any registered object should be unique within a lane. In order to make a) inspecting ids easy, while b) still registering full ids with a cross section name and a cross section element name, the method getFullId() has been added in addition to getId(). When displaying objects, getId() is used. When registering objects, getFullId() is used. Fixes OTS-328.
Fix OTS-329. N201 XML Parser demo throws error. All sensor, trafficlight, and sensor objects in XML files have to be globally unique in the network. N201v8.xml in the ots-parser-xml project test has been updated to make the names of Lane objects unique. Fixes OTS-329.
Fix OTS-330. Directions not interpreted correctly when parsing. This was caused by the fact that the DirectionUnit uses NORTH_RADIANS as the BASE, and EAST_RADIANS is -90 degrees rotated with respect to NORTH_RADIANS. Instead of using getSI() or .si for the direction, getInUnit() should be used in Fixes OTS-330.
Update Updated to DJUNITS version 3.00.01.

Release 0.14.00 – 2017-04-17

Type Changes By
Update OTS-269. Settable deletion of GTU's if in trouble. Fixes OTS-269.
Update OTS-265. BLOCK should have a cloneable class and should have animation capabilities. Fixes OTS-265.
Fix OTS-263. Fixed bug in detection of intersecting lines (shapes). Fixes OTS-263.
Fix OTS-273. XML parser parsed wrong value for use as Z-coordinate. Fixes OTS-273.
Add OTS-279. Added BusStop. Fixes OTS-279.
Add OTS-280. Added BusSchedule. Fixes OTS-280.
Update OTS-277. Removed LaneBlock. Fixes OTS-280.
Add OTS-295. PRIORITY added to LINK tag in xml parser. Fixes OTS-295.
Add OTS-299. Method projectedPosition was actually translatedPosition; method name fixed. Added new method projectedPosition. Fixes OTS-299.
Update OTS-297. DJUNITS version 2.01.03 used. Scalars in SI units with the exception of Money scalars can now be created with e.g., Length len = Length.createSI(5.0). Fixes OTS-297.
Update OTS-298. DJUNITS version 2.01.03 used. Constants NaN, POSITIVI_INFINITY, NEGATIVE_INFINITY, POS_MAXVALUE and NEG_MAXVALUE have been added to scalars, with the exception of Money scalars. Fixes OTS-298.
Add OTS-278. Scheduled busses and bus stops. Fixes OTS-278.
Update OTS-316. Allow non default GTU colorers in visualization. Fixes OTS-316.
Update OTS-267. Researched parallelization of the gtu's move() method and provided options for synchronized update of the GTU's positions as well as position caching. Fixes OTS-267.
Update Updated to DJUNITS version 2.02.00 and DSOL version 3.01.05.

Release 0.13.04 – 2017-01-16

Type Changes By
Update OTS-156. Make conflicts GTUType dependent. Fixes OTS-156.
Fix OTS-246. Demo model XMLNetworks merge with LMRS throws error. Fixes OTS-156.
Update OTS-250. Interaction conflicts and traffic lights. Fixes OTS-250.
Fix OTS-251. Memory leak in simulation when GTUs leave the system. DefaultCarAnimation object changed. Fixes OTS-251.
Fix OTS-252. GTUs do not have a hashCode function. Fixes OTS-252.
Fix OTS-253. Memory leak in infrastructure animation after cloning. Extra functions in OTSNetwork to clone and destroy networks. Fixes OTS-253.
Update OTS-254. ToggleAnimationButtons should be aligned to the left. Fixes OTS-254.
Update OTS-255. As a result of update OTS-253, the constructor of the OTSLink and CrossSectionLink have changed to include the simulator. Fixes OTS-255.
Update Default jog4j-2 configuration file added.
Update Updated to use DSOL version 3.01.03, which allows to override the Renderable2D.destroy() function.

Release 0.13.03 – 2017-01-05

Type Changes By
Fix OTS-244. OTSNetwork.shortestPath does not calculate shortest route when direction is BOTH. Fixes OTS-244.
Update OTS-245. Several methods of AbstractGTU and AbstractLaneBasedGTU should be declared non-final to allow extensions. Fixes OTS-245.

Release 0.13.02 – 2017-01-03

Type Changes By
Fix OTS-242. Repair of Bezier curve. Fixes OTS-242.
Update toString() methods added to several classes in ots-core.
Update Throw.when(...) added to constructor of
Update Unit tests added for several classes in ots-core.
Update Hierarchical GTUType class.

Release 0.13.01 – 2016-12-20

Type Changes By
Add OTS-235: Arc with variable radius. Fixes OTS-235.
Add OTS-236: Bezier SHAPE and control points limited to intersection of control lines. Fixes OTS-236.
Fix OTS-237: Clone of CrossSectionLink added CrossSectionElements twice. Fixes OTS-237.
Fix OTS-238: GTU should not immediately change lane on initialization with the DirectedLaneChange tactical planner. Fixes OTS-238.
Fix OTS-239: Time to not change lanes after a lane change with the DirectedLaneChange tactical planner should be settable. Fixes OTS-239.
Add OTS-240: The threshold distance for differences between initial locations of the GTU on different lanes should be settable. Fixes OTS-240.

Release 0.13.00 – 2016-12-11

Type Changes By
Add OTS-64: LMRS - Relaxation. Fixes OTS-64.
Add OTS-65: Level of lane change desire by other drivers. Fixes OTS-65.
Add OTS-66: Relaxation response to lane change in front. Fixes OTS-66.
Add OTS-200: Implement TrafCOD traffic controller. Fixes OTS-200.
Add OTS-214: TrafficLight implementation for car following + instantaneous lane change model. Fixes OTS-214.
Add OTS-215: TrafficLight implementation for LMRS. Fixes OTS-215.
Update OTS-218: Automatically register LaneBasedObject on their Lane. Fixes OTS-218.
Update OTS-219: Store the GTUs that trigger a Sensor in the Sensor and not in the Lane. Fixes OTS-219.
Add OTS-221: Bring back LaneBasedGTUFollowingDirectedChangeTacticalPlanner. Fixes OTS-221.
Fix OTS-222: Z-order drawing. Fixes OTS-222.
Fix OTS-223: Repair parsing for ARC. Fixes OTS-223.
Add OTS-224: Allow for selection of layers in animation. Fixes OTS-224.
Add OTS-225: Provide default zoom for animation, and fix zoomAll method. Fixes OTS-225.
Add OTS-226: Allow animation of ids for Node, Link, Lane, Sensor, TrafficLight, and GTU. Fixes OTS-226.
Update Moved ImmutableCollections to DSOL version 3.01.01.
Update Updated to use DSOL version 3.01.01.

Release 0.12.02 – 2016-11-20

Type Changes By
Update OTS-87 Implement mandatory incentives for LMRS. Fixes OTS-87.
Update OTS-88 Implement voluntary incentives for LMRS. Fixes OTS-88.
Update OTS-160 Categorize perception. Fixes OTS-160.
Update OTS-216 Added neg() function to djunits and updated djunits in ots to version 2.01.01. Fixes OTS-216.

Release 0.12.01 – 2016-11-07

Type Changes By
Fix OTS-213 Change SimpleWeightedGraph in OTSNetwork into SimpleDirectedWeightedGraph. Fixes OTS-213.
Add OTS-214 TrafficLight implementation for car following + instantaneous lane change model. Fixes OTS-214.
Add OTS-215 TrafficLight implementation for LMRS. Fixes OTS-215.

Release 0.12.00 – 2016-11-02

Type Changes By
Add OTS-106 Traffic lights as separate objects that can be observed instead of a 'fake' GTU. Fixes OTS-106.
Add OTS-181 Observable object hierarchy. Fixes OTS-181.
Add OTS-174 Retrieve network saved with xstream for a new simulation. Fixes OTS-171.
Update OTS-151 Simplify registration of GTU on lanes. Fixes OTS-151.
Update OTS-209 DJUNITS Scalars should import Comparable individually. Fixes OTS-209.
Add OTS-210 GTU to handle its own instantaneous lane change. Fixes OTS-210.
Update OTS-211 GTU should be able to provide its reference position. Fixes OTS-211.
Add Separate project 'ots' to act as the root instead of ots-base as ots-base now contains code

Release 0.11.00 – 2016-10-07

Type Changes By
Fix OTS-104 XML parser dependent on order of parsing. Fixes OTS-104.
Fix OTS-115 Repair error with lane direction in parser while link direction not yet set. Fixes OTS-115.
Add OTS-128 Add ROADCLASS definition in XML and as element under ROADTYPE. Fixes OTS-128.
Add OTS-177 Make a list of changes based on JIRA sprints in POM file. Fixes OTS-177.
Add OTS-179 OD Matrix class. Fixes OTS-179.
Add OTS-180 IMB Callback for SimSmartMobility. Fixes OTS-180.
Add OTS-173 Add events for adding/removing and for triggering of sensors. Fixes OTS-173.
Add OTS-182 Links and Nodes should automatically be added to a Network. Fixes OTS-182.
Update OTS-183 Simplify IMB connection in OTS demos. Fixes OTS-183.
Add OTS-184 SimSmartMobility: SimulationTransceiver: add comments about payload. Fixes OTS-184.
Add OTS-185 SimSmartMobility: IMB NetworkTransceiver. Fixes OTS-185.
Add OTS-186 SimSmartMobility: IMB NodeTransceiver. Fixes OTS-186.
Add OTS-187 SimSmartMobility: IMB LinkGTUTransceiver. Fixes OTS-187.
Add OTS-188 SimSmartMobility: IMB LaneGTUTransceiver. Fixes OTS-188.
Add OTS-189 SimSmartMobility: IMB GTUTransceiver conform SSM v1 standard. Fixes OTS-189.
Add OTS-190 IMB SensorGTUTransceiver. Fixes OTS-190.
Add OTS-192 XML parser has to be adapted to latest changes in the way a network is built. Fixes OTS-192.
Add OTS-193 Sampling framework to calculate KPIs. Fixes OTS-193.
Update OTS-194 ImmutableCollections have to be updated. Fixes OTS-194.

Release 0.10.00 – 2016-08-28

Type Changes By
Fix OTS-84 Demo simulations don't check for sufficient headway. Fixes OTS-84.
Update OTS-148 Direction should not implement >, >=, <, <=. Fixes OTS-148.
Add OTS-150 min and max functions for djunit scalars. Fixes OTS-150.
Add OTS-154 getLength() in Headway. Fixes OTS-154.
Add OTS-155 Add split as merge type. Fixes OTS-155.
Add OTS-158 Method to add default values of parameters defined in given class. Fixes OTS-158.
Add OTS-159 Add first offramp info in perception. Fixes OTS-159.
Update OTS-161 Replace Velocity by Speed in all code. Fixes OTS-161.
Add OTS-163 Save network with xstream. Fixes OTS-163.
Add OTS-164 POLYLINE element for LINK in XML. Fixes OTS-164.
Update OTS-165 Tidy up XML definitions. Fixes OTS-165.
Add OTS-169 Split ots-road project: separate projects for the different parsers. Fixes OTS-169.
Update OTS-171 Create separate ots-imb project. Fixes OTS-171.
Add OTS-172 Pub/sub between GTU, Lane and Graphs. Fixes OTS-172.

Release 0.09.00 – 2016-05-27

Type Changes By
Add OTS-107 Unit test verifies equals(), hashCode(), toString(), Serializable. Fixes OTS-107.
Update OTS-111 DJUNITS names of Abs quantities. Fixes OTS-111.
Fix OTS-116 Animation objects not shown after toString() changes in OTS. Fixes OTS-116.
Update OTS-118 Change Velocity to Speed in GTU methods. Fixes OTS-118.
Add OTS-120 Create a getCenter() method in all GTUs. Fixes OTS-120.
Update OTS-123 Exception.throwIf() method to separate class. Fixes OTS-123.
Add OTS-131 Add class for speed limit types with static defaults and uniqueness. check. Fixes OTS-131.
Add OTS-133 Add utility class for tactical planners for current active speed limit. types. Fixes OTS-133.
Add OTS-134 Add interface for perception with common lane change and car-following. info. Fixes OTS-134.
Fix OTS-135 Throw.when cannot throw Exceptions that can be internally thrown. Fixes OTS-135.
Update OTS-137 Immutable collection classes. Fixes OTS-137.
Update OTS-138 Implement GTUType as a Type. Fixes OTS-138.
Update OTS-139 LinkType and LaneType should become Types. Fixes OTS-139.

Release 0.08.00 – 2016-04-08

Type Changes By
Update OTS-17 Zoom whole network, zoom to home extent, toggle grid on/off. Fixes OTS-17.
Update OTS-50 Mouse-centered zoom in animation panel. Fixes OTS-50.
Fix OTS-55 Some demos don't check room for generated GTUs. Fixes OTS-55.
Add OTS-63 Display x and y coordinates on animation screen. Fixes OTS-63.
Fix OTS-89 Runtime error in dsol repaint. Fixes OTS-89.
Update OTS-90 Play and pause buttons should be merged. Fixes OTS-90.
Add OTS-101 Create list of driver characteristics. Fixes OTS-101.
Update OTS-102 New implementations of IDM and car-following interface. Fixes OTS-102.
Add OTS-103 Create a runUpToAndIncluding method for the dsol DEVSSimulator. Fixes OTS-103.
Update OTS-108 New implementation of headway algorithms. Fixes OTS-108.
Add OTS-109 Link new algorithms to RTI software for Nissan. Fixes OTS-109.

Release 0.07.00 – 2016-03-15

Type Changes By
Fix OTS-76 Circular road demo gives errors around simulation time 10 minutes. Fixes OTS-76.

Release 0.06.00 – 2016-01-27

No changes in this release.

Release 0.05.00 – 2015-12-20

Type Changes By
Add ots-core: Perception added. averbraeck
Add ots-core: OperationalPlan, TacticalPlanner, and StrategicalPlanner added. averbraeck
Add ots-core, ots-road: All GTUs are free ranging; Lane-based behavior is just a constraint. averbraeck