sync from voxels now clamp the surface nodes
Voxel Display controller to toggle volume display modes
- Changed shortcut
Voxel Type to
fragmentShader uses non-linear function to calculate fragment colors combined with face normal; this will create smoother results
DataCube2 geometry uses
ConvexHull instead of box/sphere to improve the performance
DataCube2 are no longer hidden when
sync from voxels is on: users can use shortcuts
k to easily control the visibility.
- 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 are
sync from voxels
This version mainly works on the electrode localization. Most changes occur in the
- 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
- Added line mesh to mark the distance of the electrode deviating from its original position. The line color changes with the distance value.
- Improved localization precision
- Auto-adjusting electrodes now respects the topology
- Electrodes in the localization mode now have
- Volume rendering and ray-casters now respects the transform matrices
- Electrode localization now has a
- Supported video content to display auditory visual stimuli along the response
- Default to closing the
volume side folders
- Fixed electrode localization interpolation issue
- Proper dispose the localized electrodes
- Fixed screenshot and video recording functions
- Renamed recording button to
- Finally, electrode localization is added!
TextTexture in the internal code to display text
- Can download electrodes as
- 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
- Optimized loading procedure
pryr from dependence
threejs version to
- Fixed surface transparency losing fragments issue
- Added loaders to shiny applications to avoid performance issues on old computers
- Fixed electrodes not selected on mouse click-down (on
- Added backend engine for volume rendering to show atlas files
- Standalone viewers now use native system tools for
Windows, it still needs
R to be installed)
- Allows super slow play speed to show animations in millisecond level
threejs to a newer version and fixed compatibility issues
- Animation time range is more reasonable
- Screenshot now downloads
freesurferformats face index starting from 1 instead of 0
- Now displays
MNI305 coordinates instead of
reticulate and related functions to support native R functions
MNI305 calculation issues
- Internally calculates anterior commissure
view_ct_t1 to view
CT aligned to
- Updated document on how to generate
- 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
- Added hints for keyboard shortcuts
- Control element update
brain_proxy to control in shiny element
- Separated display and threshold data
FreeMesh material can be switched between
- UI will blur focus when clicking on canvas
- Allow customizing widgets
cex (font magnification),
timestamp (display time)
controllers (list) to override control UI
- Added preset
threejs_brain(control_presets = ...)) to synchronize multiple viewers in shiny environment
- Implemented a new mesh type - volume rendering using ray marching
- Added alternative methods to read
nibabel is now optional
- Customized color palettes and value range for better visualizations with outliers
- Only requires
brain.finalsurf is not found. This allows users only run
FreeSurfer to the first stage, which only takes around 8 to 10 minutes instead of 6 hours.
- Fully compatible with
shiny mode. When calling
DOM element might get reset by
shiny, 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.
- More flexible directory requirement
- Added dispose function to canvas so that memory gets cleared correctly
- Renderer optimization and memory optimization
- Fixed keyboard listeners locking the keys
- Fixed huge memory leaks due to
threejs not garbage collecting geometries and textures
- File structure change: now directly read in from
- Added readers for
- 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
- Shortcuts available at here
- Optimized electrode value settings
- 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.
- Support customized datapath when saving widgets.
- Added instructions on how to embed widgets into websites without R.
- Implemented three types of geometries: plane, sphere and free. A free geometry takes arbitrary geometry vertices and faces to form a 3D mesh object.
- Added animation to sphere object.
- Implemented D3 side-widget
- Initial private beta release!