Skip to content

Latest commit

 

History

History
260 lines (180 loc) · 13.2 KB

File metadata and controls

260 lines (180 loc) · 13.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

  • multibody : enable displaying forces applies to frame (with lifetime) (#93)
  • core/DebugScene : add function to add arrow entities (#93)
  • core : Add LambertMaterial (#92)
  • multibody/Visualizer : remove default world triad (#92)
    • (user must add it explicitly)
  • multibody/Visualizer : pass scale to addFrameViz() (#92)
  • core/DebugScene : ensure we re-use Mesh objects effectively (#92)

0.8.0 - 2025-07-25

Added

  • Added tools for loading models from a given description struct RobotSpec (#37)
  • Added Candlewick visualizer runtime, to be used to (up)load Pinocchio models and submit states to be displayed asynchronously. (#37)
  • Embed Inter Medium font into the application (#37)
  • Add RobotDebugSystem::reload() function to switch out models

Changed

  • CMake : sync jrl-cmakemodules to new release 1.0.0 (#37)
  • CMake : change option BUILD_PYTHON_BINDINGS to BUILD_PYTHON_INTERFACE (#37)
  • multibody/Visualizer : stopRecording() now returns a flag (#37)
  • core/Components : add MeshMaterialComponent::hasTransparency()
  • multibody/RobotScene : allow reloading models, decouple model loading from render pipeline creation
  • core/DepthAndShadowPass : add ShadowMapPass::initialized()
  • core | multibody : rework of debug subsystem API, allow reloading RobotDebugSystem
  • multibody/Visualizer : implement loadViewerModel(), allow it to actually reload models

Fixed

  • core/Device.h : fix release() function
  • Python examples : wrap some import statements in try/except statements (#37)

Removed

  • Remove dependency on robot_descriptions_cpp (#37)

0.7.0 - 2025-07-04

Added

  • bindings/python : add expose-debug.cpp, expose DebugMeshComponent

Changed

  • slightly rework file dialog GUI
  • core/DebugScene : make setupPipelines() private, do not use optional
  • multibody/Visualizer/GUI : display info for robot debug frames

Fixed

  • fix screenshot PNG color channel ordering

0.6.0 - 2025-06-19

Changed

  • multibody/Visualizer : expose 'device'
  • core : make renderShadowPassFromFrustum() work properly

Removed

  • core : remove using-decl of coal::OBB

0.5.0 - 2025-06-13

Added

  • bindings/python : expose video recorder settings
  • bindings/python : add function hasFfmpegSupport() to check if... library was built with FFmpeg support
  • pixi : separate pinocchio and ffmpeg features, add to CI build matrix

Changed

  • multibody/Visualizer : expose video settings directly instead of passing fps parameter
  • cmake : allow user to turn off FFmpeg support/video recording features even if FFmpeg was detected (#83)

Fixed

  • support for Coal's current devel branch (remove incompatible fwd-declarations, just include <coal/shape/geometric_shapes.h>) (#81)
  • Make FFmpeg actually optional: add option to turn off support even with FFmpeg installed, fix building with support turned off (#83)
  • multibody/LoadCoalGeometries : fix setting the shape parameters for Capsule primitive (#84)
  • multibody::loadGeometryObject() : always override material for OT_GEOM geometries (#84)

0.4.0 - 2025-06-10

Added

  • multibody/Visualizer : add frame visualization
  • core/DebugScene : clean up entities with DebugMeshComponent
  • core/DebugScene : add move ctor, explicitly delete move assignment op

Changed

  • core/DebugScene : pass Float3 scale to addTriad()
  • multibody : deprecate header <candlewick/multibody/Components.h>
  • rename macro CDW_ASSERT to CANDLEWICK_ASSERT (for consistency)
  • multibody/Visualizer : make more mouse buttons configurable
  • docs : fix linking to pinocchio docs

Removed

  • remove default plane from Visualizer class

Python

  • Removed multibody submodule. All symbols included in the main module. (BREAKING CHANGE)
  • Fix stubs being generated for non-extension module classes/functions

0.3.1 - 2025-06-05

Fixed

  • utils/VideoRecorder.cpp : fix m_frameCounter not being initialized
  • bindings/python : fix recorder context helper

0.3.0 - 2025-06-05

Added

  • multibody/Visualizer : pass fps to startRecording()

Changed

  • core : rename header { Renderer.h => RenderContext.h }
  • multibody : remove world scene bounds from RobotScene
  • Visualizer : add worldSceneBounds data member
  • python : expose Visualizer::worldSceneBounds

0.2.0 - 2025-05-31

Fixed

  • core: Renderer : fix not cleaning up depth texture if non-null (critical)
  • core : DebugScene : fix not setting pipeline handles to nullptr
  • multibody/Visualizer : fix not releasing transfer buffers before destroying render context (critical)

Changed

  • core : set max number of directional lights to 4

0.1.1 - 2025-05-26

Added

  • core/GuiSystem : add overload for adding multiple GUI elements for DirectionalLights (#69)
  • core/CommandBuffer.h : add overload for C-style arrays to uniform-pushing methods (#69)
  • core/Shader : store shader stage (#69)
  • core/DepthAndShadowPass.h : handle multiple shadow maps using a texture atlas (#69)
  • multibody : handle two-light setup w/ shadow mapping (#69)
  • multibody/Visualizer : use H key to toggle GUI (#70)
  • shaders : Soft shadows in PBR using percentage-closer filtering (PCF) (#71)
  • core : Tighter shadow frustum around the world-scene AABB (#71)
  • core : add getAABBCorners() util function in Collision.h header (#71)

0.1.0 - 2025-05-21

Added

  • core : add guiAddFileDialog (#61)
  • utils : refactor VideoRecorder ctor, add open() member function (#62)
  • multibody/Visualizer add screenshot button in visualizer's GUI (#62)
  • utils : add generateScreenshotFilenameFromTimestamp() (#63)
  • multibody/Visualizer : GUI : add buttons to start video recording, add takeScreenshot() method (#63)
  • utils: add VideoRecorder::close() API (to manually close recorder) (#61)
  • multibody/Visualizer : add startRecording(std::string_view) and stopRecording() methods, expose to Python (#65)

Changed

  • utils : avoid public inclusion of libavutil/pixfmt header for video recorder (#61)
  • core : errors.h: make terminate_with_message a template (with formatting arguments, etc) (#61)
  • multibody/RobotDebug.cpp : fix velocity arrow direction (#61)
  • utils : make writeTextureToVideoFrame a member function (#62)
  • utils : rename writeToFile to saveTextureToFile (#62)
  • utils/PixelFormatConversion.h : make bgra conversion function in-place (#63)
  • utils & third-party : switch from stb_image_write.h to fpng for writing PNG files (#64)

Fixed

  • core : fix CommandBuffer::submitAndAcquireFence() not setting the internal pointer to null (#61)
  • Fix all calls to terminate_with_message() (format string with %) (#62)

0.0.7 - 2025-05-17

Added

  • core : make DepthPassInfo an aggregate (#57)
  • core : add updateTransparencyClassification() to tag an entity as opaque or untag it (#57)
  • proper support for transparent objects (#58)
  • shaders : add WBOIT composite shader, PBR transparent shader, utils.glsl util module, pbr_lighting.glsl (#58)
  • core/CommandBuffer : type-safe wrappers for pushing uniforms, add Raw suffix to raw methods (#59)

Changed

  • remove projMatrix from PBR shader ubo (#58)
  • multibody/RobotScene : early return if pipeline is nullptr (#58)
  • multibody/RobotScene : reorganize pipelines (accomodate for transparent PBR shader)
  • shaders : refactor basic PBR shader (move some functions to new pbr_lighting.glsl) (#58)
  • interleave debug scene render between robot render system opaque and transparent passes (#59)
  • revamp depth and shadow map pass classes (#60)
  • core/Texture : do not store pointer to Device but raw SDL_GPUDevice * handle (#60)

0.0.6 - 2025-05-14

This is the first release to use a changelog.

Removed

  • Remove MeshData loadCoalHeightField(const coal::CollisionGeometry &collGeom)

Added

  • RobotScene.h: move invalid_enum() out to public header
  • Add template class strided_view<T> for non-contiguous evenly-strided data
  • errors.h: Use string_view for _error_message_impl
  • Extend support for coal CollisionGeometry objects
    • Add support for coal::GEOM_ELLIPSOID
    • Add support for coal::GEOM_CONVEX
    • Add loader loadCoalConvex()

Changed

  • multibody : change signature and rename { guiPinocchioModelInfo() => guiAddPinocchioModelInfo() } (#54)
  • core : pass wrap width to showCandlewickAboutWindow (#54)
  • Visualizer: set next window pos (#54)
  • core/GuiSystem.h : rename some free functions, group them in topic
  • Read geometry object meshColor meshScale when updating robot scene (#50)
  • Set minimum version of ffmpeg to 7.x (#50)
  • Change signature of loadCoalPrimitive() to take coal::ShapeBase
  • Change signature of MeshData::getAttribute() template member function to use strided view

Fixed

  • Visual bug (uninitialized data) when disabling SSAO