NEWS
ggseg.extra 2.0.1
Cortical pipeline: mesh projection
The cortical atlas pipeline now projects inflated mesh triangles directly to 2D
polygons via orthographic projection, replacing the screenshot-based contour
extraction from v2.0.0.
- Much faster — atlas creation completes in ~5 seconds instead of minutes.
- Cleaner geometry — no pixel staircase artifacts from rasterisation.
- Fewer dependencies — no FreeSurfer rendering, ImageMagick, or Chrome
needed for 2D geometry (FreeSurfer is still required to read annotation
files).
- Better small-region visibility — boundary faces are assigned to the
smallest neighbouring region so tiny parcels are not swallowed by their
neighbours.
- Smooth region borders — boundary triangles (vertices in different regions)
are split along edge midpoints so each region gets a clean polygon slice,
eliminating the sawtooth artifacts from whole-triangle assignment.
Breaking changes
- Removed
method, snapshot_dim, smoothness, and steps parameters from
all create_cortical_from_*() functions. The pipeline always reads data and
projects to 2D in one pass — no step-based control needed.
- Changed default
tolerance from 0.5 to 1 — the triangle-splitting approach
produces smoother borders that tolerate higher simplification.
Lighter dependency footprint
- Moved
chromote, htmlwidgets, magick, smoothr, terra, RNifti, and
freesurfer from Imports to Suggests. Users who only need the cortical
pipeline no longer need these packages installed. They are checked at runtime
and requested when needed (subcortical, tract, and volumetric pipelines).
New internals
- Added
R/mesh-projection.R with the full geometric projection algorithm:
orthonormal view basis computation, backface culling, per-face label
assignment, and triangle-to-polygon union via sf.
ggseg.extra 2.0.0
- Major rewrite of atlas creation pipelines with modular step-based architecture
- Added GIFTI (
.label.gii) and CIFTI (.dlabel.nii) annotation support
- Added neuromaps surface and volume annotation pipelines
- Added whole-brain atlas creation from volumetric parcellations
- Added white-matter tract atlas creation from tractography files
- Added three-level verbosity control (silent/standard/debug)
- Deprecated
ggseg_atlas_repos(), install_ggseg_atlas(), and
install_ggseg_atlas_all() in favour of 'ggseg.hub'
- Moved
convert_legacy_brain_atlas() to 'ggseg.formats' (re-exported)
- Removed rgdal, purrr, reticulate, and tidyr dependencies
- Replaced reticulate/kaleido snapshots with chromote
- Protected all parallel operations against multicore fork crashes
- Removed dead FreeSurfer wrapper functions
- Fixed read_ctab for multi-word labels
- Fixed subcortical label classification in whole-brain pipeline
ggseg.extra 1.9.9.9001
Boundary triangle splitting
Boundary triangles (where vertices belong to different atlas regions) are now
split into sub-polygons along edge midpoints instead of being assigned wholesale
to a single region. This eliminates the sawtooth artifacts at region borders
that resulted from the triangular mesh geometry.
- 2-region boundaries: triangle is split at the midpoints of the two
cross-boundary edges — the majority region gets a quadrilateral, the minority
region gets a triangle.
- 3-region boundaries: triangle is divided into three quadrilaterals meeting
at the centroid.
- Default
tolerance increased from 0.5 to 1 — the smoother borders tolerate
higher simplification without visible degradation.
Bug fixes
ensure_fs_compatible_nifti() no longer errors when the NIfTI header cannot
be read (e.g. .mgz files or nonexistent paths). It now falls through
gracefully and lets downstream FreeSurfer commands handle the file.
ggseg.extra 1.6
1.6.0
- Removed rgdal dependency, replaced with sf/terra (#49, #59)
- Fixed r-universe API calls (JSON array format change)
- Fixed vignette build issues with conditional evaluation for suggested packages
- Replaced reticulate/kaleido with webshot2 for plotly screenshots
- Updated system setup vignette with new requirements
- Added documentation for parallel processing and progress bars
- Added note about freesurfer dev version requirement
- Updated CITATION to use bibentry()
- Updated pkgdown site with ggseg brand styling
- Fixed mris_label2annot example documentation
ggseg.extra 1.5
1.5.33.003
- small bug fix that prevented calls to FreeSurfer
- Possibility to initiate new atlas project from the RStudio Project GUI
ggseg.extra 1.5.33
- removes purrr dependency
- used ggseg r-universe as install repo for install functions
ggseg.extra 1.5.32
- non-standard columns in 3d atlas are retained in 2d atlas
- Freesurfer annotation file custom S3 class implemented
- progressbar for region snapshots
ggseg.extra 1.5.3
- Added pipeline functions for:
- creating ggseg3d-atlas from annotation files
- creating ggseg3d-atlas from volumetric files
- creating ggseg-atlas from cortical ggseg3d-atlas
- creating ggseg-atlas from volumetric files
- Added a
NEWS.md file to track changes to the package.