Choreonoid 2.5.0 released on August 3, 2026
===========================================

Changes since 2.4.0:

* Supported Ubuntu 26.04
* Added MuJoCoPlugin
  * Provided the MuJoCo simulator item, which performs physics computation with the MuJoCo physics engine
  * Bundled the prebuilt library of MuJoCo 3.9.0
  * Enabled the build by default
* Renewed BulletPlugin
  * Newly implemented the plugin, which performs physics computation with version 3 of the Bullet physics engine
  * Enabled the build by default when the Bullet library is detected
  * Supported articulated models based on the multibody dynamics
  * Supported the piecewise rigid simulation of continuous tracks
* Improved AISTSimulator
  * Greatly improved the scalability by using a sparse matrix structure for the LCP
  * Sped up the computation by caching the inverse of the free root inertia used in the test force computation
  * Adjusted the default value of the maximum number of iterations of the Projected Gauss-Seidel (PGS) method
  * Added the error criterion parameter for the convergence check of the PGS method
  * Sped up the computation by reducing redundant contact points
  * Stabilized the behavior by scaling the saturation of the contact depth correction to the target depth
  * Supported the individual restitution settings of contact materials
  * Added the property for the parallel collision detection (the number of collision detection threads)
  * Improved the extra joints
    * Supported the hinge type
    * Supported the constraints between different bodies
* Improved AISTCollisionDetector
  * Supported the exact collision detection between primitive shapes (sphere, cylinder, box, capsule, etc.)
  * Sped up the detection by improving the parallelization for the collision detection pairs
  * Supported the configuration of the collision detection parameters with the world item properties
* Improved ODEPlugin
  * Enabled the build by default when the ODE library is detected
  * Supported the individual friction and restitution settings of contact materials
  * Supported the self-collision detection
  * Added the selection of the collision space type
  * Supported applying external forces to links
  * Fixed the joint initialization for offset positions
  * Fixed the surface velocity (the simplified simulation of continuous tracks)
  * Added the option to approximate the inertia about the joint axis
  * Improved the extra joints
    * Supported the fixed and hinge types
    * Supported the constraints between different bodies
* Improved PhysXPlugin
  * Supported the individual friction and restitution settings of contact materials
  * Supported the bitmask actuation modes and gated the velocity feedforward
  * Supported the drive effort output
  * Supported the extra joints between different bodies
  * Fixed the surface velocity (the simplified simulation of continuous tracks)
  * Improved the cleaning process of triangle meshes
* Organized the other simulation-related functions
  * Unified the piecewise rigid continuous track devices of PhysXPlugin and BulletPlugin as PiecewiseRigidContinuousTrack
  * Removed the sources of the experimental SpringheadPlugin and RokiPlugin
  * Supported multiple simulator item types in the sample projects
  * Added the Ball sample for checking the restitution
* Improved the rendering engine
  * Improved the transparent rendering
    * Introduced the depth sorting of transparent objects
    * Achieved the per-pixel composition of transparent objects by introducing the depth peeling
    * Achieved the edge and wireframe rendering of transparent objects
  * Improved the cast shadow rendering
    * Enabled the shadow of a directional light over the whole rendering range
    * Made the shadow map size (the shadow resolution) configurable
    * Fixed the striped noise caused by self-shadowing
  * Improved the point cloud rendering
    * Sped up the rendering when the point cloud data grows
    * Supported the specification of the valid point range
    * Supported the shaded rendering using normals
  * Improved the text rendering
    * Supported multiple lines
    * Supported the selection of the Sans / Mono font types
    * Fixed the problem that the number of available character types was severely limited
  * Fixed the rendering of viewport overlays in high-DPI environments
  * Fixed the problem that picking was disabled when the lightweight view change mode was enabled
  * Eliminated the picking coordinate error at grazing angles
* Improved the visualization functions
  * Improved the bounding box display of a body
    * Made the box fit tightly by using a convex-hull-based AABB
    * Introduced the property to always show the box
    * Changed the box color depending on the selection state
  * Improved the visualization of collision lines
    * Made the line length, the line width, and the collision point marker display configurable with the world item properties
* Improved the mesh and image file I/O
  * Supported reading and writing glTF / GLB files
  * Natively implemented the Collada file loading to make it more stable and faster
  * Fixed the triangulation of non-convex polygons
  * Supported loading HDR image files
  * Added the image item for displaying an image file in the image view
* Improved the model file I/O
  * Enabled loading a self-contained URDF without path settings such as ROS_PACKAGE_PATH
  * Supported loading xacro files on Windows
  * Supported loading SDF
  * Improved the body file writing
    * Supported the mesh output in glTF / GLB
    * Stabilized the behavior of copying the original files
* Improved the numerical inverse kinematics
  * Stabilized the solution by adjusting joint angles to the equivalent ones closest to the initial state
  * Added the option to keep the target link pose exactly
  * Stabilized the angular velocity vector extraction when the rotation angle is near pi
* Supported nanobind for the Python bindings
  * Improved the binary size and the runtime efficiency of the Python bindings
  * Supported free-threaded Python
  * Stabilized the object lifetime management
  * Bundled nanobind 2.12.0
* Improved the project file I/O
  * Introduced the project pack, which archives a set of project files into a single zip file
  * Supported loading a project pack
  * Improved the precision of the floating point numbers written to a file (12 significant digits for double values and nine for float values)
  * Fixed the state saving of a body item so that the displacements of prismatic joints are stored in meter
  * Changed the old camelCase keys of project files to the new snake_case ones (with backward compatibility)
* Improved WorldLogFileItem
  * Made the archive for log playback a project pack
  * Fixed the crash that occurred when RangeSensor was used
* Improved the GUI and others
  * Added the find dialog to MessageView, which is operated with Ctrl+F, F3 and Shift+F3
  * Kept the item selection states when items are moved in the item tree
  * Reflected the display value format settings in the properties of LinkPropertyView
  * Selected the Qt offscreen platform and EGL only when no window system is available
* Build-related changes
  * Fixed the build errors with Qt 6.8 and the warnings with Qt 6.10
  * Updated the bundled fast_float to version 8.2.10
  * Updated the bundled xacro to version 1.14.20
  * Updated the bundled pybind11 for Python 3.14
* Many other minor bug fixes, internal class improvements, code cleanups, translation catalog updates, etc.

Choreonoid 2.4.0 released on May 14, 2026
=========================================

Changes since 2.3.0:

* Improved the rendering engine
  * Introduced a reversed depth buffer for OpenGL 4.6 or later, eliminating the need to set the far clipping distance
  * Supported MSAA anti-aliasing
  * Fixed the texture color blending algorithm
  * Fixed an issue with grayscale texture rendering
  * Supported highlighting of colliding objects
  * Fixed a transparent rendering issue on certain environments
* Improved the scene view
  * Supported an infinite far clipping distance mode
  * Added anti-aliasing settings
  * Made the field of view consistent when switching between perspective and orthographic cameras
  * Allowed selection of the FOV direction from auto / vertical / horizontal
  * Supported view fitting for external cameras (CameraItem / BodySyncCameraItem)
* Improved the headless mode (--no-window option)
  * Supported environments without a window system (desktop environment)
  * Used EGL for vision sensor simulation to support OpenGL hardware acceleration
  * Fixed Ctrl+C handling
* Renewed the PhysXPlugin
  * Added a new PhysXPlugin based on NVIDIA PhysX 5 (replacing the previous experimental plugin)
  * Supported bundling PhysX 5.6.1 as a thirdparty library so that it can be built together with Choreonoid
  * Supported simulation of continuous tracks (crawler mechanisms) using the PxContinuousTrack device
* Improved body-related processing
  * Added a parent link property to BodyItem so that a child body can be synchronized with a specific link of its parent body
  * Fixed issues in saving and restoring body states
  * Improved numerical inverse kinematics to obtain solutions more robustly
  * Optimized the forward kinematics computation for the remaining part after inverse kinematics
  * Changed the friction coefficient calculation for material pairs to sqrt(r1*r2)
* Improved value display and unit handling
  * Supported multi-unit display (day / hour / minute / second) for the time on TimeBar
  * Raised the upper limit of the playback speed ratio on TimeBar from 99.9 to 999999.9
  * Extended the configurable range of value display formats
* File-related improvements
  * Supported loading TIFF image files in ImageIO
  * Removed the 2 GB file size limit of WorldLogFileItem
  * Fixed the handling of material tags in URDFBodyLoader to follow the de facto standard behavior
* Build-related changes
  * Unified the required C++ standard to C++17 or later, and removed boost dependency in all environments
  * Removed Python 2 support
  * Added the debian directory and scripts for creating Debian packages
* Added OMPLPlugin as a foundation for motion planning functionality
* Many other minor bug fixes, internal class improvements, code cleanups, translation catalog updates, etc.

Choreonoid 2.3.0 released on September 9, 2025
==============================================

Changes since 2.2.0:

* Refactored GLVisionSimulatorItem
  * Added GLVisionSimulatorPlugin and moved GLVisionSimulatorItem into it
  * Separated the GLVisionSensorSimulator, GLVisionSensorScene and GLVisionSensorRenderingScreen
    classes from the implementation of GLVisionSimulatorItem
  * Implemented simulation code for each sensor type as an independent class inheriting from
    GLVisionSensorSimulator
* Added background color and world light properties to GLVisionSimulatorItem
* Added GLCameraEffectPlugin
* Improved devices so that arbitrary parameters can be specified and accessed via the info member
* Added LivoxMid360Plugin for simulating the Livox Mid360 sensor
* Added CameraItem
* Improved ImageView so that the target image can be selected with a tab menu
* Improved SmokeDevice and SceneSmoke to allow specification of a tint color
* Implemented live playback function using WorldLogFileItem
* Supported displaying values and coordinate axis markers in the left-handed coordinate system
* Disabled edit operations that should not be performed during simulation
* Modified the default recording mode of SimulatorItem to tail recording mode to prevent unintended memory
  exhaustion due to long-running simulations
* Introduced animation for the view fitting action activated by the corresponding button on the scene bar
* Added a scene bar button to fit view to the objects of selected items
* Enabled scaling of PointSetItem
* Introduced a mode to limit joint displacements in kinematics operations
* Implemented an option to preserve the local coordinate system in LocationView
* Improved model file export functionality
* Implemented a function to export the scene of selected renderable items as an OBJ mesh file
* Fixed crashes when Choreonoid is invoked with maximized window state on Qt6 and Wayland platforms
* Added the debian directory for creating deb packages
* Added an environment setup script for non-standard installation paths
* Supported PS5 and Xbox gamepads
* Improved the Python bindings
* Various minor feature improvements, bug fixes, and internal implementation enhancements

Choreonoid 2.2.0 released on July 11, 2024
==========================================

Changes since 2.1.1:

* Added support for Ubuntu 24.04
* Added support for Qt6
* Added support for C++20
* Enabled a toolbar for setting display format of numerical units and precision in GUI
* Added the link mass summary view
* Improve the movie recorder
 * Always display the marker inside the target view
 * Allow cancellation of recording even during recording
* Added support for loading mesh files in ROS 2 packages
* Fixed bugs in YAML file output
* Fixed a bug in URDF file loading
* Fixed a bug related to sensor value updates in simulation
* Fixed a bug related to high-DPI display environments
* Improved the icon image resolutions in high-DPI display environments
* Upgraded pybind11 to version 2.10.3
* Upgraded the bundled fmtlib to version 11.0.0
* Upgraded the bundled Eigen library to version 3.4.0
* Various minor feature improvements, bug fixes, and internal implementation enhancements

Choreonoid 2.1.1 released on March 21, 2024
===========================================

Changes since 2.1.0:

* Improve the plugin path management
  * Add the command line option "--add-plugin-dir-as-prefix"
  * Improve SimpleControllerItem to support additional controller directories in the plugin path

Choreonoid 2.1.0 released on March 17, 2024
===========================================

Changes since 2.0.0:

* Improved the function to write a body / scene file
* Improved the URDF loader
* Improved the OBJ mesh file loader
* Fixed the recording toggle button in MovieRecorderBar so that toggle-off to stop recording can be processed during recording
* Fixed the FPS test button in the SceneView config dialog so that click to cancel the test can be processed during testing
* Fixed the dial widgets in JointDisplacementView to work correctly
* Improved LocationView to support SceneItem and PointSetItem
* Improved the distance measurement function to support SceneItem and PointSetItem
* Added BodyPoseItem and BodyPoseListItem for recording body poses
* Added the conveyor device and improve KinematicSimulatorItem to support it
* Enabled GUI operations on multiplex bodies
* Added a function to convert a point set to a mesh to PCLPlugin
* Removed SDFPlugin
* Replaced boost.program_options with CLI11
* Removed dependency on the boost C++ library
* Improved the package.xml configuration for building with ROS 2
* Many other minor feature improvements and bug fixes

Choreonoid 2.0.0 released on August 4, 2023
===========================================

Changes since 1.7.0:

* Removed the typedefs with suffix 'Ptr' for the smart pointer types using std::shared_ptr
* Introduced BodyHandler. BodyCustomizer is deprecated.
* Introduced JointPathConfigurationHandler
* Removed the Python plugins and bindings implemented with boost.python
* Improve the Python bindings implemented with pybind11
* Separated the OpenRTM modules from the main source tree
* Separated the OpenHRP modules and GrxUI plugin from the main source tree
* Removed ScenarioPlugin
* Stopped supporting Qt4
* Replaced QGLWidget with QOpenGLWidget in the implementation of SceneWidget
* Improved the rendering engine (GLSLSceneRenderer)
  * Fixed a bug in rendering textures
  * Lightweight rendering mode is available
  * Low GPU memory consumption mode is available
* Improved the STL file loader
* Added the Universal Robots UR robot models
* Fixed the WRS2018 tunnel models
* The Eigen library contained in the thirdparty directory is used by default on Windows
* Supported Ubuntu 20.04 and 22.04
* Supported Visual C++ 2019 and 2022
* Supported Clang
* Added LocationView and LinkPositionView
* The location of an object in the scene can be locked if necessary
* Coordinate system for editing model positions can be selected on the location view and the link position view
* Modified the default material colors
* Fixed a bug in picking objects on SceneView when a high DPI display is used
* Improved JointSliderView and rename it to JointDisplacementView
* Added PositionView, which replaces BodyLinkView
* The GLSL scene renderer is used by default
* Multiple body items can be integrated into a composite body
* Added ManipulatorPlugin
* Introduced the environmental variable CNOID_EXPORT_PLUGIN_EXTERNAL_SYMBOLS
* Improved the CMake configuration files for developing plugins and controllers externally
* Fixed a bug in the calcMassMatrix function
* Added KinematicsSimulatorItem, which replaces the kinematics mode of AISTSimulatorItem
* Added HolderDevice, AttachmentDevice and a body can be attached to the parent body using them
* Added DigitalIODevice, SignalIOConnectionItem, SignalIOConnectionView
* Made the vertical axis of SceneWidget modifiable
* Added the "export symbols" property to SimpleControllerItem
* Improved the context menu in ItemTreeView
* Improved the position dragger
* The parent-child relationship betwen body items is reflected in editing body positions
* Arranged the cmake files for building programs outside the Choreonoid source
* The transparency of a body shown in the scene view can be modified as a property of the corresponding BodyItem
* Improved file dialogs
* Removed RobotAccessPlugin and Hrpsys31Plugin. The plugins are now availabe at https://github.com/choreonoid/robot-access-plugin
* Fixed the default layout of the main window
* Replaced LinkSelectionView with LinkDeviceListView, which can list the devices of a target body
* Introduced a dialog to confirm whether the current project should be saved or not when loading a new project or
  closing the application.
* Made the internal link attitudes same as the original model descriptions
* Fixed the GLSL renderer to render casting shadows correctly using Radeon GPUs
* Updated the tool bar icons
* Implemented the vertex rendering mode and the solid-wireframe rendering mode
* Improved the highlight style of selected / focused objects in the scene
* Improved the API on the joint type and the joint actuation mode.
* Made it possible to use free joints for links other than root links in the simulation by AISTSimulatorItem
* Added the API on getting the contact states from a dynamics engine
* Made AISTSimulator to be able to simulate models with non-root free joints
* Supported the standard scene file format in loading and exporting body shapes
* Supported the OBJ mesh file format in loading and exporting body shapes
* Added BodyContactPointLoggerItem to visualize the information on the contacts against a target body during simulation
* Added a function to write a body file
* Added MaterialTableItem
* Introduced snake case keys into data files
* Improveed Undo/Redo functions with the unified edit history
* Improveed WorldLogFileItem to provide a function to create an all-in-one log playback project
* Modified BodyTrackingCameraItem to BodySyncCameraItem and add the configuration dialog for it
* Added RegionIntrusionDetectorItem
* Added a function to register and switch multiple layouts of the main window
* Improved SensorVisualizerItem to support acceleration sensors and rate gyro sensors
* Added the choreonoid-info command (experimental)
* Enabled the translation of the Qt built-in messages
* Arranged the main menu items
* Fixed the display style of temporal items in ItemTreeWidget
* Supported loading URDF files
* Improved GLVisionSensorItem to support sensor noises
* Improved body key pose editing
* Introduced LinkedJointHandler and supported the kinematics operations of parallel link models on GUI with the handler
* Disabled building of PoseSeqPlugin and BalancerPlugin by default
* Added the Imu class
* Added the function to render texts in SceneView
* Added the distance measurement function
* Separated the GLSceneRenderer module from the Base module
* Added BodyStateLoggerItem
* Added MocapPlugin
* Added BodyMotionFilterPlugin implementing YawMomentCompensationFilter
* Added FFmpegPlugin
* Added the HRP-4C model and its samples
* Many other minor feature improvements and bug fixes

Choreonoid 1.7.0 released on May 8, 2019
========================================

Changes since 1.6.0:

* Supported Ubuntu 18.04
* Supported Visual C++ 2017
* Added MulticopterPlugin to simulate multicopters
* Added TrafficControlPlugin to simulate bad communication environment
* Added SubProjectItem to share project items across multiple projects
* Added LightingItem to set a light source in the virtual world
* Improved GLVisionSimulatorItem to support wide viewing angle range sensors and omnidirectional cameras
* Improved AGXDynamicsPlugin to support additional physical models such as wire-like objects and breakable joints
* Improved SensorVisualizerItem to support various sensors
* Improved BodyTrackingCameraItem to specify its target link
* Improved the joint slider view to support the dial interface for joint displacements
* Improved OpenRTMPlugin
 * The standard profile format is used to store / restore RT system configurations
 * Multiple name servers can be used simultaneously
 * The target nameserver can dynamically be changed by specifying the default nameserver of OpenRTM
 * Improved the visualization in the RTS Diagram View 
 * Introduced the manual mode of the RTC state detection
 * Added the RTC configuration view
* Added the OpenHRP model loader implemented using Choreonoid
* Fix PhysXPlugin to support PhysX 3.4
* Improved the body file format to specify textures
* Introduced standard joystick mapping to enable different joystick devices to be used in the same way
* Added sample robot models and their projects
 * Aizu Spider
 * Aizu Wheel
 * Quadcopter
* Added the project and model files of the tunnel disaster response and recovery challenge at World Robot Summit 2018
* Improve the API of SimpleController
* Introduced fmtlib as a formatting library to replace boost.format
* Modified the wrapping rules of the pybind11 version python wrappers
 * Modified the function names to get member object xxx to to getXxx()
 * Member object xxx can be accessed as property xxx
* Supported the complete out-of-source build
* Enabled to build Choreonoid as a ROS package in the Catkin environment
* Added CMake configuration files for the plugin development
* Fixed pkg-config files
* Many other minor feature improvements and bug fixes


Choreonoid 1.6.0 released on October 31, 2017
=============================================

Changes since 1.5.0:

* New model file format replacing the OpenHRP model file format
* Mesh files of various formats including STL and Collada can be read as a part of body models
* Introduced the concept of contact material for specifying a parameter set relating to the contact of an object pair
* New controller API that enables a controller to specify which state variables to input and output
* Introduced BodyIoRTCItem for directly creating an RTC for the model input / output
* New rendering engine written in new OpenGL APIs and the GLSL shading language
* New implementation of the Python bindings using the pybind11 library
* Supported Python3
* A beta version of the Lua language bindings using the Sol2 library
* A beta version of AGXDynamicsPlugin to enable AGX Dynamics to be used as a physics engine for simulation
* A beta version of SpringheadPlugin to enable the Springhead library to be used as a physics engine for simulation
* A beta version of RokiPlugin to enable the Roki library to be used as a physics engine for simulation
* Added sample models and projects
* Many other minor feature improvements and bug fixes


Choreonoid 1.5.0 released on July 13, 2016
==========================================

Changes since 1.4.0:

* Improved the view / toolbar management system
* Added GLVisionSimulatorItem, which simulates vision sensors such as cameras, RGBD cameras, and laser range sensors
* Added A function to interactively apply force to an object being simulated using mouse dragging
* Improved the stability the simulation performed by AISTSimulatorItem
* Added PhysXPlugin, which enables nVidia PhysX to be used as a physics engine in simulation
* Added WorldLogFileItem, which stores all the log data of a virtual world being simulated online
* Generalization of collision detectors
* Added BodyTrackingCameraItem, which provides a camera that automatically tracks a particular object in a virtual world
* Added SensorVisualizerItem, which visualizes the states of sensors such as force sensors in a scene view
* Added PointSetItem and MultiPointSetItem, which visualize point cloud data in a scene view
* Added the Python scripting function, which enables users to control Choreonoid with a Python script
* The source code of BalancerPlugin became a part of Choreonoid's main source code with the same license
* Added samples
* Supported both Qt4 and Qt5
* The license was changed from LGPL to the MIT license
* Other minor improvements and bug fixes


Choreonoid 1.4.0 released on August 29, 2013
============================================

Changes since 1.3.1:

* Improved the OpenRTM plugin to support simulation using RT-components
* Added the Bullet plugin, which allows the use of the Bullet physics library as one of the simulation engines
* Added the Media plugin for playing movie and audio files
* Introduced a new SceneView implementation based on the pure OpenGL API
* Supported cameras and lights defined in models on the new SceneView
* Supported the simulation of the crawler mechanism
* Path variables can be set and used in project files
* Added the RIC30 robot model
* Added sample projects for the new functions and models
* A lot of other minor improvements
* A lot of bug fixes
* Refactoring the API of the Body library and plugin


Choreonoid 1.3.1 released on August 20, 2012
============================================

Changes since 1.3.0:

* Fixed a bug of reloading items
* Fixed a bug of the execution file path detection on Mac OS X
* Fixed a problem where a filename cannot be specified on file save dialogs on Mac OS X
* Fixed a crash caused by ItemPropertyView


Choreonoid 1.3.0 released on July 29, 2012
==========================================

Changes since 1.2.0:

* Improved the AIST Simulator

  - Improved the high-gain dynamics mode to be more accurate
  - Made the integration methods selectable

* Improved the support for Mac OS X

  - Introduced relative path setting for shared libraries to make
    the binary files relocatable on the file system
  - Fixed the BalancerPlugin binary to be loadable

* Supported Boost C++ libraries version 1.50
* Fixed some other bugs


Choreonoid 1.2.0 released on July 20, 2012
==========================================

Changes since 1.1.0:

* Supported Mac OS X (Only tested on Lion)
* Added a general dynamics simulation function
* Improved the robustness of the automatic dynamic balance adjustment
* Improved the numerical inverse kinematics to be more robust
* SceneView's sequential image output function for creating movies
* Online viewer function whose API is same as OpenHRP3
* Forward kinematics dragging for slide joints on SceneView
* Added the Corba module and CorbaPlugin which support some CORBA functions
* Supported Clang compiler
* Ended the use of Boost.multi_array library which caused some problems
* Removed the Eigen library source from the source archive
* Fixed many other bugs


Choreonoid 1.1.0 released on December 30, 2011
==============================================

Changes since 1.0.0:

* Supported internationalization

 - Messages can be translated into other languages
 - Added Japanese translations
 - International  characters (any characters defined in Unicode) can be used
   in data and filenames in the Linux distributions based on UTF-8
 - Local character encoding (such as shift-jis) can be used in data and filenames in Windows
 - Added some scripts for handling gettext files

* New graphical tool bar icons
* New application icon
* Fixed a compile error in Visual C++ 2010
* Fixed some other bugs


Choreonoid 1.0.0 released on November 8, 2011
=============================================

This is the initial release version.
