Changelog
Source:NEWS.md
threeBrain 1.4.0
- Automatically download template subject when
merge_brainis called but the subject is missing - Electrode transparency is improved when visualized as geometry
- Added slice threshold, an user controller to strip the skulls
- Volume slice masks work even the orientation and dimensions are different
- Added slice material instead of
RawMaterialto wrap up changes to theuniforms - Rewrote slice sampling method (super-sampling rather than completely linear interpolation) to improve the user experience when inspecting
MRIslices - Added outline mode for discrete overlays
- Using physical/standard materials for electrode prototype geometries
- Allowed electrode prototype transforms to be rigid when mapping to template
- removed
raveiofrom comments and using scanner RAS for slices - Added
fsaverage_inCIT168template - Fixed
trkformat; supportedtckformat (drag and drop) - Suppressed rendering flags when the trackball is inactive, fixing the rendering policy
- Fixed drag and drop color key length issue
- Added
radiographicview - Use
KDTreeto query the streamlines that intersect the target volume - Updated
BlueRedcolor palette to match with theravebuiltinscolor - Removed obsolete
freesurfer_brainand embrace the new universal interfacethreeBrain - Added
rendermethod for template brain for remembering the states in shiny applications -
merge_brainalso gains new argumentelectrode_priorityto control the priority when setting electrode shape - Drag and drop is handled by file-system
APIorWebkitbefore fallback to naive approaches to support dropping in folders - Added support for
ttstreamline format - The default colors for dropped objects are determined by their file names to avoid random colors
- Better fallback method for workers who don’t get new job spawned
- Worker spawn is throttled
- Added pseudo random generator
- Streamlines have better memory management with random shuffle
- In highlight mode faded streamline widths can be adjusted
- Added global ruler next to compass
- Added try-catch to handle file processing errors to avoid stopping processing files
- Drag-and-dropped files now generate consistent default colors and ignores the left-right keywords
- Fixed drag and drop multiple files issue
- Drag drop supports folders now
- Added support for multiple electrodes
- Added “interpolate without refine” option for electrode localization, if the users prefer;
- native annotation from template supports
FreeSurfercurvfile too - Surface mapping is more robust even if the hemisphere is unset: using
MNI152R-axis to infer the hemisphere instead
threeBrain 1.3.0
- Ray-caster with ruler now works on surfaces derived from volumes
- Fixed volume value range issue: instead of using
cal_minandcal_max, always calculate the data minimum and maximum instead. - Updated
jspdfversion - Ruler supports multiple segments and displays segment lengths and angles for adjacent segments
- Minor edits on ruler
- Make sure the ruler does not automatically disappear unless pressing “R” key
- Added ruler helper
- Fixed template brain argument issue when template
atlasandannotationtypes are not specified explicitly - Supported dynamic color-map (value range) for continuous surfaces and volumes; supported showing additional volume components (such as time component in
fMRI) - Added prototype geometries for
AdTech-SD16R-AP0?X - Fixed color palette offset issue; Supported dropping color map for electrode contacts
- Handles infinite electrode numbers
- Fixed bugs drag & drop electrode data type: the electrodes with missing data will be reset, and the color palettes for existing data will be kept
- Fixed
GLBformat issue - Minor change on the error message
- Multi-brain template passes extra arguments to template object constructor
- Function
threeBraindoes not automatically download templates if annotation is not found - Disable downloading files in
WASMby default to avoid triggeringCORScondition that will terminate the program - rewrote drag & drop code so its framework can be easily extended; surface color handlers now handle measurements and annotations different, with separate storage
- Added
FileDataHandlerclasses to handle drag & drop files; supported drop-in electrode coordinate files -
GIfTIreader now respect the transforms if there exists a transform with target space to be thescanner_anat - Allows continuous data cube to change color map
-
add_annotationautomatically compiles annotations from template if missing - Fixing the side panels so the background color is always black
- Canvas and screenshot is transparent when background is
#ffffff - Fixed
shaderignoring always-depth flag when outline is off; updatedjsPDFto the 2.5.2 build - Transition animation allows video recording
- Fixed screenshot button and improved video quality
- Fixed sub-cortical
ROImatrices - Added surface coordinate for cross-hair
- Fixed get controller state function; added stage transition, allowing users to create animations from key states
- Using “color” instead of separated
colorandunderlayColorattributes for surface underlay - Supported visualizing surface annotations; surface colors are synced to the electrode colors if the names are consistent; re-wrote the surface
shaderto support under- and over-lay colors - Updated
SurfaceShaderto use morph normal and transformed positions - Load other common surfaces by default
- Switching subject surface types will trigger morph if the number of vertex nodes are the same
- Allow animation presets to be shown even when data is not available; added keyboard shortcut to sync data threshold with display; added hidden features that are experimental;
crosshairposition is changed to scannerRASandAffine MNI152; addedtooltiptitle support for controllers; added global clock for app; updatedViewerCanvasconstructor arguments; supporteduseMorphTargetfor surface objects - Fixed electrode
useMatrixwhen contacts are represented as spheres - Fixed template mapping, supported non-linear mapping for electrode geometries
threeBrain 1.2.0
CRAN release: 2024-11-07
- Fixed shiny callback when electrode contacts are double-clicked
- Fixed contact-switching and highlight box
- Added
PMTelectrodes - Fixed non-integer search radius issue
- Adjust electrode position can be done under volume-mode to improve user experience
- Electrodes with prototype geometries will use the prototype to infer the locations rather than spacial calculation
- Added keyboard shortcut for registering from cross-hair
- Added
get_atlas_valuesfor continuous atlases such as binary or probabilisticROI - The radius refers to maximum
RASdistance instead ofvoxelindexing distance, hence more accurate when the atlas volume has imbalanced slice count - Renamed
active-voxeltocolumn-row-slicebut still keep the naming for backward compatibility -
Voxelfilter is linear now when displayed at side slices only and when the slice mode is notactive-voxel - Fixed drifting issue when visualizing via active
voxelmode - Added direction arrow helper to
DBS(or electrodes with non-zero model up vectors) - Support
WebAssembly - Avoid using
pandocto save the whole page self-contained - Fixed the depth issue in electrode material shader
- Set maximum render length cut-off for electrode prototypes
- Added model tangent (usually the direction) to electrode shader so outlines are correctly visualized
- Fixed electrode prototype rendering issue (color) on Windows
- Fixed the color map for discrete values
- Setting electrode prototype render order to be
-500so it does not hide behind the transparent surfaces - Plotting electrodes on slices now takes numerical
adjust_brightnessinterpreted as quantile - Changed default color palette for discrete values, removed colors that are too dark or gray
- Change
CTthreshold back to positive (3000) when switching fromDBSleads back tosEEGleads. - Support drag and drop annotation files
- Changed electrode material to display front-side only instead of double side to avoid overlapping contacts visually when spacing is small
- Added
Abbottsegmented electrodes6170-6173, with segmented electrodes clockwise viewing fromproximalend - Fixed a bug that may change electrode coordinate hand
- All the
DBSelectrode prototype maker uses naturalcosforxandsinfory. However, this will cause electrodes to rely on rendering on back side (material) - Added missing prototype
- Fixed
BSCandMedtronicelectrode orientation (now is counter-clockwise when viewing fromproximalend) - Added more spacing for
DBSsegmented contacts - added prototypes for
Medtronicsegmented electrodes - Added
BSC-DBelectrodes for22022201 - Added internal test code for depth mapping
- Surface mapping has been implemented for depth electrodes, with dynamic offset threshold
-
surface_offsethas been added to electrode field -
cvs_avg35_inMNI152has the correcttalXFM(scanner toMNI305) now - Added
load_meshto surface object so users can load surface mesh for computation inR - Added internal
calculate_distancesto compute the distances from a point to its projection to a list of mesh -
DistanceShiftedin electrode table is taken into account and will be passed to electrode instances - Inflated surfaces have offset by default
- Fixed a singular matrix bug when the electrode prototype
upvector is zero or is parallel with the model direction - Allowed the surface mapped electrodes to be snapped to the surface if the surface world matrix is not identity
- Force the inflated brain to have offset positions
- Added
DBSelectrode prototypeBSC-DB-2202 - Prototype
set_transform_from_pointsnow tries to set rotation from transformEulerangle when the prototype guided marker is 1-ranked (electrode strip,DBSelectrodes) - Allowed electrode prototype to display markers; added viewer options for localization
- Changed electrode direction helper to be displayed inside of cross-hair group
- Allowed side panel to be displayed with atlas column-row-slice
- Added controller to display symmetric continuous color map for volumes
- Fixed the
GLTFnot showing inner-most contact issue - Removed
develversion ofravetoolsfrom check - Update
Githubaction check script - Added
rhubcheck - Plotting slices have correct margins with partial plot
- Allow users to drag and drop value tables
- Allow users to hide cross-hairs
- Allow
shinyapp to change current color map via proxy - Allows drag-drop electrode color files
- Added
set_electrode_datato brain proxy class, allowingshinyapplications to change the electrode data, set color palettes, and set value ranges in the same call - Allow masks to be added to
T1 - Added
D99v2for monkey brain - Export
GLTFfordatacube2 - Fixed
fix_electrode_colorbug - Supported
ISOsurface generation from volume - Added white-matter segmentation as default atlas if user has this file
- Exporting
GLTFis wrapped with try-catch -
fix_electrode_coloris exclusive by default - fixed color fixing issue for naive sphere electrodes
- Changed logo message
- Using better
RAVElogo and fixed style issues - Changed shortcut
pto toggling the visibility andshift+pto switching surface types - Added logo to control panel to advertise the project
- Added export
GLTFbinary format - Separate
3Dand2Dcanvas; - Converts
*h.pial.giitoFreeSurferformat when the files are missing - Allow electrode depth test to be disabled (always-depth) on contact and/or outlines
- Fixing the vertex shader output not read by fragment shader issue
- Drop-in feature support color-map for volume and surfaces
- Added contact order to display when electrode is clicked
- Added
DIXI(AM,BM,CM) electrode specifications
threeBrain 1.1.0
Major Changes
-
threejsengine is upgraded tov160; added support forNIfTIandGIfTIimages - Allowed data to be embedded with viewer as
dataURI. This results in a truly standalone viewer: no extra engine required, only web-browser is needed. - Added electrode geometry prototype, allowing users to see the electrode rather than using spheres, useful for electrodes with super micro contacts or electrodes with segmented contact like
DBS - Added support for showing (cortical or sub-cortical)
ROIsurfaces - Implemented drag-and-drop feature to drop arbitrary volume (
nii,mgz) or surface (fs,gii) files to the viewer. The surface coordinate system is inferred from file name followingBIDSconvention. The surface color can be set via a color-map (csv) or in the file name - Implemented slice (in side viewer) overlay
- Users can control side camera
frustums(near and far) separately - Implemented worker system so the viewer can run truly parallel code in the background
- Added
snap-to-electrodeandline-of-sightmode in addition to canonical anatomical slices.- Under
line-of-sightmode, the underlay image will be sliced dynamically with a plane orthogonal to the line of sight; two other (orthogonal) planes parallel to the line of sight - Under
snap-to-electrode, the volume slices will be snapped to electrode direction (only available when electrode prototype is used and electrode direction defined). The other two planes will dynamically slice theMRI
- Under
- Users can localize an electrode probe by clicking on the target location, then entry location
- Added an option to add
QRcode to the viewer, allowing people to link to the publication - Loading progress is more informative now
- Implemented
plot_slicesto allow plottingMRIslices for each contact in canonical order - Users can set default colors to electrodes via
brain$electrodes$fix_electrode_color - Users can override underlay images by placing
rave_slices.nii[.gz]under themri/inFreeSurferfolder - File/Data loaders use
JavaScriptworkers now (can be disabled withenable_cache=TRUE) - Added mesh clipping to see depth electrodes without compromising color
- Implemented volume clipping
- Added new mode for
ACPCalignment - Added
targetflag so objects can be rendered differently on main canvas versus side canvas
Minor changes
- Electrode prototype names follow
type-company-version.jsonformat - Added compass object to side cameras when slice mode is not canonical
- Remove
UVmapping on sphere electrodes - Added model up direction to electrodes to assist calculating Euler axis and angles
- Volume, atlas threshold is asynchronous now
- Changed default values of some controller
- Added
broadcast()to more controllers; - Atlas key number is displayed so users no longer need to search for look-up table
- Added debug flag with keyboard shortcuts
- Viewer finally compiles with
quarto/rmarkdown - Implemented functions to create
sEEGelectrodes - Slices does not write to depth buffer when rendered in side canvas, so electrode contacts are not blocked
- Allowed anchor to be fixed when localizing with electrode prototype
- Using
instancedMeshto render actual electrode spheres when prototype is used and users choose to see the actual contact locations - Implemented
mapToTemplatefor electrode prototypes -
Pialsurface does not write to depth buffer when it’s super transparent - Added drivers to set object transform matrix
- Adjust the implementation of background color and
arcballradius - Removed composer effects, using
shadersto render electrode outline - Trackball uses longer side of the canvas instead of shorter side as radius
- Added electrode visibility mode: use
threshold-onlyto show contacts that pass threshold even no display value is given - Overlay brightness can be adjusted via controller
- Adjusted title position
- Updated
CITATION - New color map is used for electrodes to be consistent with
RAVEcolor - Allow adding additional geometries in
brain$plot - Improved spacing for interpolation and extrapolation (electrode localization); removed old interpolation logic; added
distanceRatioto prevent large shift (auto adjust) - Electrodes are opaque on main but transparent on side canvas
- Using
pialsurface center as trackball center - Dithering the
datacube2to make rendering more natural on main canvas - By default set
MRIslices visible when surfaces are missing - Drag & drop file names is sanitized to avoid displaying issues
- Electrode contacts (
instancedMesh) are now click-able -
disposeis cleaner now, it also fires events - Added
makeClickableandremoveClickableto replace previousadd_clickablefunction - Renamed
register_objecttoregisterToMap - Better ways to sanitize
datacube - Improved
datacubeoverlay texture, including usingclamp-to-borderinsteadclamp-to-edge - Ray-casting electrode prototypes with
instancedMeshnow works undercontact-onlymode - Show electrode prototype with contacts by default
- Added color modes for uploaded images
- removed
normalizemethod (replaced bygetNormalizedImage) fromNiftiImageandMGHImage - Using script to generate change log automatically from Git commits
- Scrolling on side canvas is faster now
- Allowed prototype contact colors to be fixed
- Prototype control points displays channel information (provided control points are channels) Added color (
randomColor,testColorString) and file-name utility functions - Soft removed
addColorCoatand usingElectrodeMaterial, this results in massive code improvement in electrode instance - Allow to set default electrode colors if a contact is not rendered with values nor fixed color
- Scrolling on side canvas is faster now
- Color look-up table can be set with arbitrary single color (in
HexString, indicating that all values should be rendered with such color; Drag & Drop volumes can change to single colors - Remembers the state when switching volumes (
datacube2)
Bug fixes
- Fixed
NamedLutcolor error when a value range is zero - Prototype electrode click information displays the channel number
- Fixed
RShinyDriverissue when object does not have construction parameters (usinggetThreeBrainInstanceinstead) - Avoid rendering volume data to sub-cortical
ROI - Fixed UV issues in electrode geometry prototypes
- Fixed a bug when slice instance is missing but controller tries to set overlay
-
JavaScriptmap is hidden when compiled so browsers will not complain about missing maps - Significantly reduced the chances of viewer crash under R shiny applications
- Fixed a
shadercrash issue onWindows -
WebGL2is the hard requirement now; users will be notified if this requirement is not met - Mouse position in the canvas is calculated every mouse down instead of every resizing to fix the control issues when page is scrolled in shiny app
- Fixed
controller.loadto handle invalid set controller request - Fixed
textspritedepth issues - Fixed light under new engine
- Fixed visualization of volume cubes when using
NIfTIfiles - Fixed volume transforms when
sformandqformare inconsistent inNIfTI - Fixed a bug in interpolation with spacing
- fixed incorrect
ROIlabel -
as_subcortical_labelgenerates correct white-matter labels - Fixed
freesurfer_lut - Fixed
auto-adjustfeature (electrode localization) - Fixed
UVmapping issue in sphere electrode geometry - Fixed
shaderissue when transparency is set to negative (treated as 1) - Using
NIfTIheaders to get calculated color intensities before applying heuristic approach
threeBrain 1.0.2
- Removed a
shaderloop that accidentally used dynamic variable for looping, which may crash onWindowsin certain situations - Updated
README.md - Composer effects are removed
- Added default color to electrodes (JavaScript) to fix the localization electrode color not set correctly issues
- Added
z-indexbase to the side canvas layer (div) - Removed additional unused parameters from material call
- Used new material type to make brain more realistic
- New background color is implemented
-
Trackballuses width instead of height of the viewer as theArcballradius; mouse positions is calculated whenever mouse-down event is triggered (allowing more accurate track-ball calculation inShinyapplications) - Made
col2hexstrinternal function - Added a new electrode visibility mode, allowing to show contacts with no values but passing the threshold
- Added
brain$electrodes$fix_electrode_colorto fix the electrode colors under given data names (to displayDBSelectrodes, for example) - Made
controller.loadmore robust against errors - Fixed the depth issue in
TextSprite - Some default controller values have changed to make more sense
- Outline render effect is removed; electrode outlines are implemented directly in the
shader - Updated
three.jstov160with light model improved - Added
rave_slices.niito allowedMRIprefix inFreeSurferfolder with highest priority, such that this image will be treated as default volume to load in side canvas (default is stillbrain.finalsurfs.mgz) - Allow
MRIto change brightness dynamically in viewer - Ensure that
voxelsindex from zeros - Added
brain$get_atlas_labelsto guess the atlas labels from given masks or atlas files - Allowed to spatially transform electrodes to desired coordinate system
- Updated citation
- The standalone viewer does not require static server anymore: everything is self-contained (require
pandoc, which comes withRStudio) - Changed mechanism on animation color map generator (so the color is more accurate for discrete variables)
- Added
pngto dependence - Added support for
AC-PCalignment, available inRAVE-YAELmodule - Allow
brainto plot with additional customized geometries - Added
plot_slidesto plotMRIcentered at each electrode contact for slide-to-slide visualization - Added Line-of-Sight view mode for side canvas; can be enabled using shortcut
m(previous shortcut to change the material type is changed toshift+M) - Fixed
CTinJavaScriptwhen thesformandqformare different (have different code) - Allowed to specify the spacing for interpolation and extrapolation for unequally spaced electrodes
- Added electrode outlines
-
YAELpaper is finally out - Fixed incorrect sub-cortical labels
- Deprecated old format (no cache is needed anymore)
- Made electrodes opaque on main but transparent in side canvas
- Let controllers check if the variable is valid before set to avoid invalid viewer state during initialization
- Added
get_ijk2rasto getNorigandTorigmatrix
threeBrain 1.0.1
CRAN release: 2023-07-03
- Updated controller library to have reasonable input focus
- Allow
MRIslices to beNIfTIformat - Set slices to be visible by default when the surface is not available
- Fixed transform for
datacube2 - Fixed
qformwhen readingNIfTIfiles - Fixed
auto-refinefunctions 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
threeBrain 1.0.0 - Egypt
CRAN release: 2023-06-03
This version is a major update.
- Created
threeBrain::threeBrainas the formal way to create brain objects - Updated
JavaScriptengine tov150 - Allow getting
HTMLtags from saved widget so the widget can be used fromJupyternotebook - Added
$rendermethod 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
threeBrain 0.2.9
CRAN release: 2023-03-14
This version plans for a major update. Here are some highlights:
- Electrode localization can be done from original
CTinstead of re-sampled ones - Completely isolate
JavaScriptengine fromRcode. TheJavaScriptcode is available asnpmpackage 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
threejsis required: standardnpmdistribution is used - New controller
GUIis implemented - The viewer can be driven via
JavaScriptdirectly via event dispatchers - Anatomical segmentation map is visible from the side panels; the
voxelvalues are displayed when settingcrosshair
Detailed Changes
- Added step size in
datacube2material uniforms - Upgraded
threejstor148, and usenpmdistribution “three” - Massive code re-factory (variable names, trackball controls, legacy classes…)
- Removed
data-GUIand uselil-GUI - Fixed compass (finally…)
- Added title to the viewer
- Reworked the whole message signal system, added
ThrottledEventDispatcher.js - Added
MouseKeyboardclass to track mouse and keyboard events, greatly reduced canvas burden - Added
animParameterobject to canvas to keep track of the animation parameters - reworked shiny drivers
- fixed one-voxel shift issues
- Added format support for
nii,mgh/mgz,FreeSurfersurface,FreeSurfernode value binary formats - Added function
threeBrainto allow 3D viewer to run without cache (with fs only) - Fixed memory leak issues in
JavaScriptcode - Geometry groups can now change its storage path
- JS is completely independent now (available on
npmnow) - 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
GUIsupport to change electrode label visibility and size - Electrode label size adjusts along with electrode radius
-
handle_resizenow put off resizing function when detecting widget size is too small
threeBrain 0.2.7
CRAN release: 2022-10-15
threeBrain 0.2.6
CRAN release: 2022-08-25
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
CTto be either path or the actual data when calling localizing function
threeBrain 0.2.5
CRAN release: 2022-05-30
Changes
- Surface
sync from voxelsnow clamp the surface nodes - Added
Voxel Displaycontroller to toggle volume display modes - Changed shortcut
lfromVoxel TypetoVoxel Display - Volume
fragmentShaderuses non-linear function to calculate fragment colors combined with face normal; this will create smoother results -
DataCube2geometry usesConvexHullinstead of box/sphere to improve the performance -
DataCube2are no longer hidden whensync from voxelsis on: users can use shortcutslandkto easily control the visibility. -
download_template_subjectcan download other templates such asfsaverage,cvs_avg35,bert.
threeBrain 0.2.4
CRAN release: 2021-12-03
This version mainly works on the electrode localization. Most changes occur in the JavaScript engine.
Changes
- 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.
threeBrain 0.2.2
threeBrain 0.2.0
CRAN release: 2021-07-27
Changes
- More efficient volume rendering with transparency
- Added shader functions to surface instances, allowing color rendering from volume, electrodes, or vertices (major change)
- Added color-map generator for surface and volume data
- Added method to generate data cube (volume) from
MNI305coordinates - Optimized loading procedure
- Removed
crayon,base64enc,htmltools,pryrfrom dependence
threeBrain 0.1.9
CRAN release: 2021-01-10
threeBrain 0.1.6
threeBrain 0.1.5
CRAN release: 2020-01-20
Changes
- Import
FreeSurferandSUMAfilessulc - Control element update
- Added
brain_proxyto control in shiny element - Separated display and threshold data
-
FreeMeshmaterial can be switched betweenMeshPhongMaterialandMeshLambertMaterial
Improvements
- UI will blur focus when clicking on canvas
- Allow customizing widgets
background,cex(font magnification),timestamp(display time) - Allow
controllers(list) to override control UI - Added preset
syncviewers(threejs_brain(control_presets = ...)) to synchronize multiple viewers in shiny environment
threeBrain 0.1.4
CRAN release: 2019-10-18
Changes
- Implemented a new mesh type - volume rendering using ray marching
- Added alternative methods to read
.niifiles,nibabelis now optional - Customized color palettes and value range for better visualizations with outliers
- Only requires
T1.mgzorbrainmaskofbrain.finalsurfis not found. This allows users only runFreeSurferto the first stage, which only takes around 8 to 10 minutes instead of 6 hours. - Fully compatible with
htmlwidgetsinshinymode. When callingthreejsBrainOutputundershiny::renderUI, theDOMelement might get reset byshiny, causing a new 3D viewer created. This might consume more resource, causing memory leaks and even conflict context renderings. Also event listeners couldn’t reset correctly. A cache is created and now is reusing the canvas.
threeBrain 0.1.3
CRAN release: 2019-09-10
Changes
- File structure change: now directly read in from
FreeSurferfolder - Added readers for
.mgz,.m3zfiles - Added coordinate system to align volume with surface data
- Implemented side-viewers, added three side cameras at XYZ axis
- Can now read, export electrodes as csv file
- Re-write brain generating function
- Can display/switch multiple value types
- Added transparency to surfaces
- Implemented experimental electrode localization
- Automatically determine color type (continuous or discrete) and value range
Improvements
- Shortcuts available at here
- Optimized electrode value settings
threeBrain 0.1.2
CRAN release: 2019-06-28
Changes
- Re-draw canvas on a 2D context to make customized overlay directly on canvas.
- Implemented continuous and discrete legends to replace D3.
- Added support to set main camera position and initial zoom level.
- Added 3D scatter plot and examples.
- Use hybrid render mode when animation not required to save battery usage.
- Improved color palette calculation.
- Support customized title.