Changes

  • Surface sync from voxels now clamp the surface nodes
  • Added Voxel Display controller to toggle volume display modes
  • Changed shortcut l from Voxel Type to Voxel Display
  • Volume 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 l and k to easily control the visibility.

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 are sync from voxels

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.

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

Changes

  • Electrode localization now has a shiny application

Improvements

  • Added 3 vignettes

Changes

  • Supported video content to display auditory visual stimuli along the response
  • Default to closing the default and volume side folders

Improvements

  • Fixed electrode localization interpolation issue
  • Proper dispose the localized electrodes
  • Fixed screenshot and video recording functions
  • Renamed recording button to Chrome-specific

Changes

  • Finally, electrode localization is added!
  • Added TextTexture in the internal code to display text Sprite easily
  • Can download electrodes as csv

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 MNI305 coordinates
  • Optimized loading procedure
  • Removed crayon, base64enc, htmltools, pryr from dependence

Improvements

  • Bumped threejs version to v131dev
  • 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 Firefox)

Changes

  • Added backend engine for volume rendering to show atlas files
  • Standalone viewers now use native system tools for Mac and Linux (On Windows, it still needs R to be installed)

Improvements

  • Allows super slow play speed to show animations in millisecond level
  • Bumped threejs to a newer version and fixed compatibility issues
  • Animation time range is more reasonable

Changes

  • Screenshot now downloads pdf format

Improvements

  • Fixed freesurferformats face index starting from 1 instead of 0

Changes

  • Now displays MNI305 coordinates instead of tkRAS coordinates
  • Removed reticulate and related functions to support native R functions

Improvements

  • Fixed MNI305 calculation issues
  • Internally calculates anterior commissure

Changes

  • Implemented view_ct_t1 to view CT aligned to T1 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

  • Added hints for keyboard shortcuts

Changes

  • Import FreeSurfer and SUMA files sulc
  • Control element update
  • Added brain_proxy to control in shiny element
  • Separated display and threshold data
  • FreeMesh material can be switched between MeshPhongMaterial and MeshLambertMaterial

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

Changes

  • Implemented a new mesh type - volume rendering using ray marching
  • Added alternative methods to read .nii files, nibabel is now optional
  • Customized color palettes and value range for better visualizations with outliers
  • Only requires T1.mgz or brainmask of 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 htmlwidgets in shiny mode. When calling threejsBrainOutput under shiny::renderUI, the 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.

Improvements

  • More flexible directory requirement
  • Added dispose function to canvas so that memory gets cleared correctly
  • Renderer optimization and memory optimization

Bug Fixes

  • Fixed keyboard listeners locking the keys
  • Fixed huge memory leaks due to threejs not garbage collecting geometries and textures

Changes

  • File structure change: now directly read in from FreeSurfer folder
  • Added readers for .mgz, .m3z files
  • 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

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.

Improvements

  • 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.
  • Replaced old JavaScript with npx driven modules.
  • Implemented D3 side-widget
  • Initial private beta release!