Releases: dipterix/threeBrain
CRAN Release 1.2.0
First, this package is back on CRAN now.
Check https://github.com/dipterix/threeBrain/blob/master/NEWS.md for release notes.
CRAN Release 1.0.1
This version focuses on enhanced support on NIfTI
format, allowing users to replace mgh/mgz with nii when preprocessing imaging data using pipelines other than FreeSurfer
- Updated controller library to have reasonable input focus
- Allow
MRI
slices to beNIfTI
format - Set slices to be visible by default when the surface is not available
- Fixed transform for
datacube2
- Fixed
qform
when readingNIfTI
files - Fixed
auto-refine
functions in electrode localization - Removed clipboard auto-copy and auto-paste functions since they conflict with other viewers; instead users can use controllers to copy and paste state
CRAN Release 1.0.0 (Egypt)
This version is a major update since the major functions in electrode localization have been implemented.
- Created
threeBrain::threeBrain
as the formal way to create brain objects - Updated
JavaScript
engine tov150
- Allow getting
HTML
tags from saved widget so the widget can be used fromJupyter
notebook - Added
$render
method to remember viewer states - Allowing set title via proxy driver
- Added citation information
- Fixed hemisphere issue in localization when electrodes are closer to opposite hemispheres
- Added electrode registration from anatomical slice cross-hair
The version code is chosen in memory of Egypt, who just passed away earlier today.
The photo is licensed under Creative Commons Attribution-NonCommercial-NoDerivs (CC-BY-NC-ND).
CRAN Release 0.2.9
threeBrain 0.2.9
This version plans for a major update. Here are some highlights:
- Electrode localization can be done from original
CT
instead of re-sampled ones - Completely isolate
JavaScript
engine fromR
code. TheJavaScript
code is available asnpm
package and is used via sub-module - Implemented file readers directly from
JavaScript
, this allows reading files directly in viewer, and no cache is needed - No home-brew version of
threejs
is required: standardnpm
distribution is used - New controller
GUI
is implemented - The viewer can be driven via
JavaScript
directly via event dispatchers - Anatomical segmentation map is visible from the side panels; the
voxel
values are displayed when settingcrosshair
Detailed Changes
- Added step size in
datacube2
material uniforms - Upgraded
threejs
tor148
, and usenpm
distribution "three" - Massive code re-factory (variable names, trackball controls, legacy classes...)
- Removed
data-GUI
and uselil-GUI
- Fixed compass (finally...)
- Added title to the viewer
- Reworked the whole message signal system, added
ThrottledEventDispatcher.js
- Added
MouseKeyboard
class to track mouse and keyboard events, greatly reduced canvas burden - Added
animParameter
object to canvas to keep track of the animation parameters - reworked shiny drivers
- fixed one-voxel shift issues
- Added format support for
nii
,mgh/mgz
,FreeSurfer
surface,FreeSurfer
node value binary formats - Added function
threeBrain
to allow 3D viewer to run without cache (with fs only) - Fixed memory leak issues in
JavaScript
code - Geometry groups can now change its storage path
- JS is completely independent now (available on
npm
now) - Peel event dispatcher from the canvas class so the events can be managed separately
- Hide time-stamps when there is no data/animation available
- Added experimental support to show labels on regular electrodes; currently no depth-test is turned on
- Added
GUI
support to change electrode label visibility and size - Electrode label size adjusts along with electrode radius
handle_resize
now put off resizing function when detecting widget size is too small
Bug fixes
- Fixing
xfm
not parsed correctly when the line starts with blank spaces - Stopped rendering canvas when canvas is too small (less than 10 pixels)
Screenshot of the electrode localization.
CRAN Release 0.2.7
threeBrain 0.2.7
Changes
- Rewired events, allowing to drive the viewer via
JavaScript
events - Allowed to set animation playback status
- Remove modal by default if
raveio
orravedash
is loaded - Edited launch script to always use
Python3
Bug fixes
- Fixed installation issues (template brain) on
Windows
, avoid backslashes
threeBrain 0.2.6
Changes
- Allowed users to pan the camera when localizing electrodes
- Added line segment geometry type that can either display static line segments (such as
DTI
), or connect two electrodes dynamically - Printing brain now uses more accurate terms
- Allowed
CT
to be either path or the actual data when calling localizing function
Bug fixes
- Fixed
NifTi
orientation issues and use correctsform
- Fixed localization issue when
NifTi
transform matrix has determinant not equally to 1 - Fixed volume shader, resolved shift issues when panning the camera
CRAN Release 0.2.5
Changes since 0.2.0:
Highlights:
- Added electrode localization with aligned re-sampled CT image. Can be accessible via
brain$localize(ct_path)
. Rendering original CT is in the dev schedule - Users can download electrode coordinates as
csv
directly from the control panel - Added support to download other templates such as
fsaverage
,bert
,cvs_avg35
etc. - Allow to show volume data directly in the viewer (toggle with key
l
) - Allow surface vertex color to be sampled from volume or electrodes (projected to the surface with Gaussian blur) via shortcut
k
.
Changes
- Surface
sync from voxels
now clamp the surface nodes - Added
Voxel Display
controller to toggle volume display modes - Changed shortcut
l
fromVoxel Type
toVoxel Display
- Volume
fragmentShader
uses non-linear function to calculate fragment colors combined with face normal; this will create smoother results DataCube2
geometry usesConvexHull
instead of box/sphere to improve the performanceDataCube2
are no longer hidden whensync from voxels
is on: users can use shortcutsl
andk
to easily control the visibility.download_template_subject
can download other templates such asfsaverage
,cvs_avg35
,bert
.- Allows electrodes to be reset
- Displays electrode labels along with the electrodes
- Allows resizing electrode size on the fly
- Allows resizing the electrode labels
- Localization module has been integrated into
RAVE
- Added line mesh to mark the distance of the electrode deviating from its original position. The line color changes with the distance value.
- Supported video content to display auditory visual stimuli along the response
- Default to closing the
default
andvolume
side folders - Renamed recording button to
Chrome
-specific - Can download electrodes as
csv
Improvements
- Improved localization precision
- Auto-adjusting electrodes now respects the topology
- Electrodes in the localization mode now have
LocElectrode
class - Volume rendering and ray-casters now respects the transform matrices
- Added 3 vignettes
- Added
TextTexture
in the internal code to display textSprite
easily
Bug fixes
- Fixed a volume rendering issue where ray-marching directions are not calculated correctly
- Fixed color not set correctly when changing
Voxel Labels
while surface colors aresync from voxels
- Fixed electrode localization interpolation issue
- Proper dispose the localized electrodes
- Fixed screenshot and video recording functions
Pre-Release 0.2.0
This (draft) release includes core engine updates and performance improvements. It's in testing phase.
CRAN Release 0.1.8
Changes
- Screenshot now downloads
pdf
format
Bug Fixes
- Fixed
freesurferformats
face index starting from 1 instead of 0
CRAN Release 0.1.7
Bundled update from 0.1.5
threeBrain 0.1.6 ~ 0.1.7
Changes
-
Now displays
MNI305
coordinates instead oftkRAS
coordinates -
Removed
reticulate
and related functions to support native R functions -
Implemented
view_ct_t1
to viewCT
aligned toT1
images -
Updated document on how to generate
FreeSurfer
brain -
Removed dependency to
nibabel
and use native R packages -
Re-designed legends, added options to show, hide display information
-
Added screenshot to download as image
Improvements
- Fixed
MNI305
calculation issues - Internally calculates anterior commissure
CRAN Release 0.1.5
CRAN 0.1.5