Releases: nmwsharp/polyscope
Releases · nmwsharp/polyscope
v2.6.1
Some bugfixes and minor additions from 2.6:
- Unbreak ground shadows
- Fix some bounding box numerical issues for degenerate scenes
- Adjust transform gizmo background color
- Wireframe visualization for sparse grid structures
Python
- Add (very beta) support for Gaussian splats, via the
gsplatlibrary. See https://github.com/nmwsharp/polyscope-py/blob/master/test/scripts/gaussians_demo.py
v2.6.0
Polyscope v2.6 Release notes (C++ & Python)
Core Library
- Improvements to basic navigation and camera motion
- Change default panning behavior: turntable center moves as you pan the camera (thanks @Kiord)
- Double-clicking on a point in the scene to recenter the camera!
- Add new sparse volume / sparse voxel grid structure type
- Added a new (optional) onscreen colorbar, which looks more like a typical traditional colorbar and is shown directly on the screen
- Added function to export the colorbar to an .svg file for creating figures
- Rework the Transformation Gizmo, use ImGuizmo to render it, add many more options for customizing the Gizmo transformations (rotation/translation only, etc)
- Allow arbitrary additional user-created Transformation Gizmos to manipulate transforms/positions in custom UIs
- Added functions to create/get/manipulate slice planes with custom names (thanks @merlinND)
- Add a callback to drag-and-drop files into the Polyscope window (thanks @merlinND)
- Update ImGui v1.91.9b --> v1.92.5
- Rework support for multiple contexts with ImGui+GLFW
- Change the way font loading and custom fonts work (breaking change for advanced users only)
- Add Icon fonts for use with ImGui (currently internal, not yet exposed to end users)
Python
- Move python bindings to nanobind, add type hints for almost everything (thanks @wjakob)
- Re-generate ImGui bindings, bind essentially all of ImGui and ImPlot (thanks 🤖)
- Add Python bindings to all slice plane functions (thanks @merlinND, @xiangdonglai)
- Add Python bindings to configure imgui styles from Python (thanks @merlinND)
- Wheels are now published for Python 3.9-3.14 (dropped end-of-life 3.7 & 3.8, as well as pypy builds)
Misc Bugfixes / Tweaks
- Screenshots with the ImGui UI enabled are remarkably hard. Disable the old broken behavior, improve docs for what does work. (thanks @mengf821)
- Fix a camera bug when the turntable view nearly aligns with the vertical axis
- Fix several rendering bugs when using the orthographic camera (thanks @xarthurx @renanbomtempo)
- Bindings fixes (thanks @ningnawang @BrunoLevy)
- Rendering related crash with camera views after adjusting view widget properties
- Surface mesh tangent vector rendering was briefly broken
- Fix VolumeGrid isosurface indexing for non-uniform dimensions (thanks @danhambleton)
- UI tweaks
v2.5.0
What's Changed
- Support ui scaling for high-DPI displays, improve text clarity on high-dpi displays (thanks @BruegelN!)
- Add a ctrl/cmd + shift-click to focus and orbit around region-of-interest, programmatic support for view orbit centers #350
- Add ImPlot for creating 2d plots in the UI (and corresponding Python bindings)
- Smarter, configurable logic for timing the main loop with
frameTick(), including skipping ticks to hit framerate - (python) remove cupy as a dependency for on-gpu buffer updates
- Add variable curve network radius on edges #351
- Add infrastructure for quantity picking, fix bug with render images being ignored when picking #354
- Fix buggy transparency for RenderImages with all-black pixels
- Update imgui to v1.91.9b #338
- Other various bugfixes, documentation improvements, bindings (thanks @phaedon,@kenshi84!)
New Contributors
Full Changelog: v2.4.0...v2.5.0
v2.4.0
What's Changed
- Add support for headless rendering with EGL on linux
- Overhaul selection / picking to be much easier to use and more general
- Add support for categorical scalar quantities (labels/segmentations/flags/etc)
- add ARM builds to Python wheels @johnnynunez
- support a proper shutdown flow
- check & warn for inf/nan values in input
- contour line scalar shading, add more perceptual colormaps by @keenancrane
- expose texture filtering options for surface mesh texture quantities
- add a convenience adder for curve networks which are a collection of line segments
Bugfixes etc
- Fix autoscaling of structures. by @patsytau in #304
- Repaired README example for point clouds by @amock in #294
- use
std::vector::data()when setting GL data by @gkoulin in #300 - remove deprecated keycode functions
- fix histogram rendering bugs by tracking buffers which must be preserved for imgui render
- fix a bug where saving/restoring views to the clipboard was broken on linux
New Contributors
- @amock made their first contribution in #294
- @gkoulin made their first contribution in #300
- @patsytau made their first contribution in #304
- @keenancrane made their first contribution in #317
Full Changelog: v2.3...v2.4.0
v2.3.0
What's Changed
- implement per element transparency for meshes and point clouds
- add option to set ground plane location in world coords
- bugfix to redraw when toggling-off the enabled setting for quantities
Full Changelog: v2.2.1...v2.3
v2.2.1
v2.2.0
Significant Additions
- Experimental EGL backend for headless rendering on some platforms
- Update ImGui to 1.90.4 and glm to 1.0.1
- Move glm to a git submodule
- Change path to nlohmann/json dependency
- Update CMake to use modern targets, handle cases where an outer library already provides the dependencies
- Many bugfixes
What's Changed
- Fix texture scalar UI name in #254
- fix indexing bug for surface textures from vertex param in #255
- Make FPS camera navigation speed independent from frame rate by @FeatherAntennae in #252
- Rename json->nlohmann for consistency with standard use of 3rd party lib by @phaedon in #251
- explicit buffer vs screen coords for picking & screen-space ops in #259
- fix indexing bug for surface textures from vertex param in #262
- Update ImGui to 1.90.4 by @jdumas in #260
- Update CMake dependencies to rely on proper targets by @jdumas in #261
- refactor globals into a context object by in #265
- bugfix for camera pick missing normal buffer crash (fixes #264) in #267
- add EGL backend for headless rendering on linux in #266
- Update glm to 1.0.1 by @jdumas in #263
- Add
windowRequestsClose()forframeTick()loops - Fix bug in volume grid isosurface coordinate order
New Contributors
- @FeatherAntennae made their first contribution in #252
- @phaedon made their first contribution in #251
- @jdumas made their first contribution in #260
Full Changelog: v2.1.0...v2.2.0
v2.1.0
v2.0.1
v2.0.0
This represents a whole bunch of changes that had accumulated over the past >2 years.
Key new features:
- New structure: Camera View. Represents a camera in the scene, add images/renderings and view them through the camera's perspective.
- New structure: Volume Grid. Values on the nodes or cells of a regular grid in 3D space. Visualize with slices through the grid, or view levelsets via marching cubes.
- New quantity: color & scalar images. These are a new kind of 'floating' quantity, add them to the whole scene, or to any structure.
- New quantity: render images. Images that represent renderings of the scene, and can depth-composite with other content, etc.
- New quantity: mesh texture images. Texture-mapped color and scalar values on meshes.
- Alternate control flow method for simulations & interactive apps that already have a main loop.
- Flat material circumvents shading & tonemapping to display colors onscreen exactly as specified.
- More helper functions for manipulating views and getting info about mouse clicks.
- C++ data adaptor taking {ptr, size} to from any flat buffer for adding structures & quantities.
- Surface Meshes no longer let you select halfedges/edges by default
- Big backend perf & memory improvements. Added shader cache. Total rewrite of backed data management, so we never store duplicate copies of data. Updating data in a tight loop should be much faster now.
- Beta/partial/undocumented support for directly updating buffers from the GPU without a CPU round-trip.
- Cleaned up docs website to scale better to more content. New FAQ section.
Just a few small breaking changes:
- Rename intrinsic vector quantities to tangent. Change interpretation of symmetric data. Track bases per-quantity rather than per-structure.
- Remove ability to set vertex- and face- permutations for surface meshes.
- Remove poorly-supported surface mesh quantities: surface graph (superseded by Curve Network), count quantity, subset quantity