Changes in each release¶
2.5.0 (August 3, 2026)¶
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.
2.4.0 (May 14, 2026)¶
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.
2.3.0 (September 9, 2025)¶
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
2.2.0 (July 11, 2024)¶
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
Improved the movie recorder * Always display the marker within 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 icon image resolution for high DPI display environments
Updated pybind11 to version 2.10.3
Updated the bundled fmtlib to version 11.0.0
Updated the bundled Eigen library to version 3.4.0
Various minor feature improvements, bug fixes, and internal implementation enhancements
2.1.1 (March 21, 2024)¶
Improve the plugin path management
Add the command line option “–add-plugin-dir-as-prefix”. A plugin path can be added in the installation prefix directory of a module installed separately from Choreonoid itself.
Improve SimpleControllerItem to support additional controller directories in the plugin path
2.1.0 (March 17, 2024)¶
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
2.0.0 (August 4, 2023)¶
Support for Ubuntu 20.04 and 22.04
Support for Visual C++ 2019 and 2022
Support for Clang
Discontinued support for Qt4
Added the following plugins:
ManipulatorPlugin
BodyMotionFilterPlugin
MocapPlugin
Made building of the following plugins optional:
PoseSeqPlugin
BalancerPlugin
Removed the following modules and plugins (note: some plugins have been separated into different repositories):
OpenRTMPlugin
OpenHRPPlugin
GrxUIPlugin
ScenarioPlugin
RobotAccessPlugin
Hrpsys31Plugin
Added the following views:
LocationView
LinkPositionView
LinkDeviceView
HumanoidPoseFetchView
Added the following project items:
KinematicsSimulatorItem
MaterialTableItem
BodyContactPointLoggerItem
BodyStateLoggerItem
RegionIntrusionDetectorItem
Improved SceneView and rendering engine:
Enabled GLSLSceneRenderer by default
Fixed texture rendering bugs
Introduced lightweight rendering mode
Introduced low GPU memory consumption mode
Shadow rendering support for Radeon
Implemented vertex rendering mode and solid-wireframe rendering mode
Enhanced highlighting style for selected/focused objects in the scene
Added text rendering support
Support for high DPI displays
Improved operation dragger
Introduced BodyHandler for customization of specific processing code for Body:
Added JointPathConfigurationHandler for handling robot arm configurations
Added LinkedJointHandler to enable kinematics operations for parallel link models
Deprecated BodyCustomizer previously used for this purpose
Improved Python bindings:
Enhanced Python bindings implemented in pybind11
Removed Python plugins and bindings implemented in boost.python
Enhanced model loading and writing features:
Support for reading URDF files
Support for reading and writing OBJ mesh files
Speeded up STL mesh file loader
Support for writing Body files
Support for writing in Choreonoid standard scene file format
Sample-related improvements:
Added HRP-4C model and samples
Added Universal Robot models
Fixed WRS2018 Tunnel models
GLVisionSimulatorItem now supports sensor noise
Added distance measurement function
Ability to integrate multiple body items into a composite body
Improved item context menu
Reflected parent-child relationship of body items in body position editing
Improved file dialog
Corrected default layout of main window
Multi-layout registration and switching for the main window
Confirmation dialog at project loading, saving, and exit
Updated toolbar icons
Unified Undo/Redo functionality
Improved choreography feature
Maintenance of CMake files for program build outside choreonoid source
Numerous other feature improvements and bug fixes
1.7.0 (May 8, 2019)¶
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
1.6.0 (October 31, 2017)¶
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
Other minor improvements and bug fixes
1.5.0 (July 13, 2016)¶
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
1.4.0 (August 29, 2013)¶
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
1.3.1 (August 20, 2012)¶
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
1.3.0 (July 29, 2012)¶
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
1.2.0 (July 20, 2012)¶
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
1.1.0 (December 30, 2011)¶
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
1.0.0 (November 8, 2011)¶
This is the initial release version.