diff --git a/_pages/plugins/snt/auto-tracing.md b/_pages/plugins/snt/auto-tracing.md
index dfbc531df..098ad97af 100644
--- a/_pages/plugins/snt/auto-tracing.md
+++ b/_pages/plugins/snt/auto-tracing.md
@@ -100,7 +100,7 @@ For technical implementation details and references, see the [SNT technical note
The {% include bc path='Auto-trace|Detect Soma...' %} command provides automated detection of cell bodies in neuronal images. This is a standalone tool that can be used before autotracing to identify soma locations, or independently to annotate soma positions and sizes.
-{% include img align="center" name="Soma Detection" src="/media/plugins/snt/snt-soma-detection.png" caption="Automated soma detection: ROI countour (Cultured hippocamapl neurons: _Neuronal receptors_/_Synaptic labeling_ demo datasets)" %}
+{% include img align="center" name="Soma Detection" src="/media/plugins/snt/snt-soma-detection.png" caption="Automated soma detection: ROI countour (Cultured hippocampal neurons: _Neuronal receptors_/_Synaptic labeling_ demo datasets)" %}
## Detection Strategy
diff --git a/_pages/plugins/snt/comp-tools.md b/_pages/plugins/snt/comp-tools.md
index fa6455aef..6680340fb 100644
--- a/_pages/plugins/snt/comp-tools.md
+++ b/_pages/plugins/snt/comp-tools.md
@@ -12,7 +12,7 @@ update-site: Neuroanatomy
| Tool | Description | Comments |
|------|-------------|----------|
-| [Spot Spine](/plugins/spot-spine) | Detection and count dendritic spines, segmentation of spine heads, and quantitative morphological measurements of spines | Under active development |
+| [Spot Spine](/plugins/spot-spine) | Detection and count of dendritic spines, segmentation of spine heads, and quantitative morphological measurements of spines | Under active development |
| [BigTrace](/plugins/bigtrace) | Semi-automated/automated tracing of unbranched structures using BigVolumeViewer | Under active development |
| [NeuronJ](/plugins/neuronj) | Semi-automated tracing in 2D only | No longer maintained. SNT reads NDF files |
diff --git a/_pages/plugins/snt/faq.md b/_pages/plugins/snt/faq.md
index ea1dec37b..2b72df0d9 100644
--- a/_pages/plugins/snt/faq.md
+++ b/_pages/plugins/snt/faq.md
@@ -116,7 +116,7 @@ This is a human-driven workflow: the reviewer examines paths one by one, applies
Thresholds can be tuned manually, calibrated from reference cells, or loaded from preset files. Warnings are generated algorithmically and displayed in a sortable table with one-click navigation to each issue.
The assistant does not make quality judgments; it surfaces statistical anomalies that may warrant a closer look.
-In practice, the two tools serve different stages: the Curation Assistant catches potential errors *during* tracing (or shortly after), while the Proofreading toolbar supports structured *review* of traced strucures.
+In practice, the two tools serve different stages: the Curation Assistant catches potential errors *during* tracing (or shortly after), while the Proofreading toolbar supports structured *review* of traced structures.
## Sholl Analysis
diff --git a/_pages/plugins/snt/manual.md b/_pages/plugins/snt/manual.md
index 13d3a57c2..10276561d 100644
--- a/_pages/plugins/snt/manual.md
+++ b/_pages/plugins/snt/manual.md
@@ -122,7 +122,7 @@ Presents a list of previously created backups and replaces the current tracings
To use this feature:
{% include img src="/media/plugins/snt/snt-recover-from-snapshot.png" align="right" width="300px" %}
-1. Trace one more paths
+1. Trace one or more paths
2. Save them to a local file using {% include key key='ctlcmd|S' %} ({% include bc path='File|Save Tracings|Save' %})
3. Keep tracing paths. When pertinent, press {% include key key='ctlcmd|Shift|S' %} ({% include bc path='File|Backup Tracings' %}) to save current progress to a timestamped backup file
4. Reinstate progress from backed up data using {% include bc path='File|Revert to Backup...' %}, which allows you to go 'back in time'
@@ -643,7 +643,7 @@ Creates a fork point at the node closest to the mouse cursor. Once a fork point
Removes the last segment from the temporary path.
### Finish Path {% include key key='F' %}
-Finishes the temporary path. Not that a path can always be finished by {% include key key='double click' %}
+Finishes the temporary path. Note that a path can always be finished by {% include key key='double click' %}
## Edit Mode {% include key keys='Shift|E' %}
Pressing *Edit Mode*, selects the nearest path for editing, unlocking the edit options. When *Edit Mode* is active, moving the mouse cursor along the path will highlight the nearest node with a crosshair icon and synchronize the current Z-slice to the location of that node. Note that the ability to create new paths is temporarily disabled when in *Edit Mode*.
diff --git a/_pages/plugins/snt/reconstruction-viewer.md b/_pages/plugins/snt/reconstruction-viewer.md
index d7dc434d8..c423b5aa8 100644
--- a/_pages/plugins/snt/reconstruction-viewer.md
+++ b/_pages/plugins/snt/reconstruction-viewer.md
@@ -8,7 +8,7 @@ forum-tag: snt
---
{% capture version%}
-**This page was last revised for [version 5.0.0](https://github.com/morphonets/SNT/releases)**.
+**This page was last revised for [version 5.0.9](https://github.com/morphonets/SNT/releases)**.
Please help us to keep up-to-date documentation by [editing](https://github.com/imagej/imagej.github.io/edit/main/_pages/plugins/snt/reconstruction-viewer.md) this page directly to fill in any documentation gap. Do [reach out](https://forum.image.sc/tag/snt) if you need assistance!
{% endcapture %}
{% include notice content=version %}
@@ -63,52 +63,58 @@ The RV Controls dialog is the Reconstruction Viewer equivalent to the [Path Mana
This menu provides control over the rendered scene.
-### Toggle Dark Mode
-Switches between dark and light theme. Shortcut: {% include key key='D' %}
-
### Fit to Visible Objects
Computes a bounding box containing all objects of the scene and adjusts the zoom level to ensure all objects are within the camera view. Shortcut: {% include key key='F' %}
### Fit to Selection
Zooms into the object(s) currently selected in the object list.
-### Impose Isotropic Scale ›
-Squares the aspect ratio of the selected dimensions, leaving the others unchanged. Default is _None_.
-
-### Axes ›
-Controls to label, toggle and change the orientation of the cartesian axes of the scene. The 'Flip axis' commands may be useful to mitigate mismatches between cartesian and anatomical orientations.
-
-### Stretch-to-Fill
-Stretches the projection on the whole viewport. NB: This may distort proportions in the scene.
-
### Viewer Size...
Allows fine-control over the viewer dimensions (useful for, e.g., resizing the viewer to known dimensions before recording an animation).
### Full Screen
Enters full screen mode ({% include key keys='Shift|F' %}). To exit full screen press {% include key key='ESC' %}
+### Aspect Ratio/Scaling ›
+Options to impose isotropic spacing by "squaring" the aspect ratio of the selected dimensions, leaving the others unchanged. Default is _None_ (No imposition).
+This menu also includes a _Stretch-to-Fill_ option that stretches the projection on the whole viewport. NB: This may distort proportions in the scene.
+
+### Axes ›
+Controls for the Cartesian axes of the scene, including:
+
+- {% include bc path='Anatomical Mapping...'%} Opens a dialog to assign anatomical labels and orientations to scene axes (e.g., Anterior–Posterior, Dorsal–Ventral, Left–Right), useful when working with registered data from reference atlases
+- {% include bc path='Axes Labels...'%} Allows manual renaming of the X, Y, and Z axis labels
+- {% include bc path='Display Frame'%} Toggles the full bounding frame (axis box) around the scene
+- {% include bc path='Toggle Axes'%} Shows or hides the axis lines. Shortcut: {% include key key='A' %}
+- {% include bc path='XY View: Flip Horizontal Axis / Flip Vertical Axis'%} Flips the specified axis in the XY constrained view, which can be useful to mitigate mismatches between Cartesian and anatomical orientations (e.g., when left–right or dorsal–ventral conventions differ from the default rendering)
+
+### Scale Bar ›
+Controls for an overlay scale bar rendered on the scene canvas:
+
+- {% include bc path='Display Scale Bar'%} Toggles the scale bar overlay. When first enabled, a notification reminds the user of the assumed base unit
+- {% include bc path='Set Base Unit...'%} Specifies the spatial unit of the scene coordinates (µm, nm, mm, or pixels). This determines how the scale bar length is computed and labeled
+
+### Toggle Dark Mode
+Switches between dark and light theme. Shortcut: {% include key key='D' %}
+
### Reset View
Resets the view point, view mode, and zoom level, fitting and centering all scene objects into the camera view. Shortcut: {% include key key='R' %}
### Reload Scene
Resets the view and checks if all the drawables in the scene are being rendered properly. If not, allows the scene to be rebuilt completely. Shortcut: {% include key keys='CTRL|R' %}
-### Rebuild Scene
+### Rebuild Scene...
Clears all objects from the scene then rebuilds them from scratch. Shortcut: {% include key keys='CTRL|SHIFT|R' %}
-### Wipe Scene
+### Wipe Scene...
Removes all objects from the scene (this action is undoable).
-### Scene Shortcuts...
-Displays the viewer's hotkeys. Shortcut: {% include key keys='F1' %}
-
### Duplicate Scene
Stores the current scene into a new non-interactive instance of the viewer to allow side-by-side rendering of detailed scenes.
### Sync Path Manager Changes
This option is only available when the viewer was initialized from SNT. It ensures any pending changes performed in the Path Manager percolate into the 3D scene. Shortcut: {% include key keys='CTRL|SHIFT|S' %}
-
## Neuronal Arbors
This menu relates to the import, customization and management of reconstructions and is organized into three sections.
@@ -163,7 +169,7 @@ This section of the menu includes commands for deleting reconstructions from the
This menu includes commands for loading, managing, and customizing 3D meshes commonly used to represent surface meshes of anatomical structures, neuropil labels, or brain compartments. Currently only Wavefront OBJ files are supported. It is also organized in three sections:
-### Add Meshes
+### Load OBJ File(s)...
Includes commands for import and rendering of Wavefront OBJ files, or folders containing multiple files.
### Customize Meshes
@@ -172,33 +178,31 @@ Includes commands for adjustment of the color and transparency of the selected m
### Remove 3D Meshes
This section of the menu includes commands for deleting meshes from the scene. Note that you can also remove objects using the [contextual menu](#contextual-menu).
-
## Geometric Annotations
This menu includes commands for handling geometric annotations such as points, vectors, surface, and cross-section planes.
### Add Annotations
-Commands for adding cross-section planes, surfaces, as well as simpler primitives (spheres, vectors, and planes). Annotations can be split in two categories:
+Commands for adding cross-section planes, surfaces, as well as simpler primitives (spheres, vectors, and planes). Annotations can be split in three categories:
#### Cross-section planes
Cross-section planes can be cell-based or mesh-based:
-- Cell-based: Cross-section planes can be rendered in either X,Y,Z axis along the centroid (mid-plane) of either dendrites, or axons, or at the center of cell soma
+- Tree-based: Cross-section planes can be rendered in either X,Y,Z axis along the centroid (mid-plane) of either dendrites, or axons, or at the center of cell soma
- Mesh-based: Cross-section planes can be rendered in either X,Y,Z axis along the centroid (mid-plane) of the mesh
#### Surfaces
Similarly to [convex hulls](#convex-hull), surfaces reflect enclosing polyhedrons. Surfaces can also be of two types:
-- Cell-based: Cell-based surfaces can be assembled from the point cloud defined by branch-points or tips of a neuronal arbor
+- Tree-based: Cell-based surfaces can be assembled from the point cloud defined by branch-points or tips of a neuronal arbor
- Mesh-based: Mesh-based surfaces can be assembled from the point cloud of the mesh's vertices associated with either the left or the right hemisphere (bilaterians model organisms)
{% include img align="right" name="Geometric annotations" src="/media/plugins/snt/snt-recviewer-geometric-annot.png" caption="Geometric annotations: Surfaces and planes" %}
-
-#### Misc ›
-This menu includes controls for adding 3D primitives to the scene including, parallelograms, spheres, or vectors at specified coordinates.
+#### Shapes
+These are 3D primitives including, parallelograms, spheres, or vectors at specified coordinates.
### Customize Annotations
@@ -280,7 +284,7 @@ Conducts [Strahler Analysis](/plugins/snt/analysis#strahler-analysis) on single
"
%}
-### Atlas-based Analysis
+### Atlas-based Analyses
#### Annotation Graph
@@ -305,17 +309,16 @@ Adds a text label with options to customize font size, style, color, rotation an
#### Color Mapping Legends ›
Contains options to add, edit, or remove [Color Mapping](#color-mapping-) legends.
-#### Create Figure...
-Only available in standalone viewers. See [Manual › Create Figure...](/plugins/snt/manual#create-figure).
-
#### Light Controls...
Adjustments of light and shadows. Note these are currently experimental features.
-#### Record Rotation
-Animates a rotation of the current scene and saves each frame to disk. The save directory, rotation degree, duration and frames per second may be adjusted in [Preferences](#other).
+#### Create Figure...
+Only available in standalone viewers. See [Manual › Create Figure...](/plugins/snt/manual#create-figure).
+#### Record Animation...
+Animates a rotation of the current scene and saves each frame to disk. The save directory, rotation degree, duration and frames per second may be adjusted in [Preferences](#other).
-### Screenshots
+### Snapshots
Commands for handling scene snapshots, including:
- {% include bc path='Take Snapshot & Display'%} Takes a snapshot of the current scene and displays it in ImageJ
@@ -345,8 +348,31 @@ This section contains options for sensitivity of mouse and keyboard scene intera
- {% include bc path='Pan Accuracy| '%} Sets the responsiveness of panning. A lower step size is more responsive
- {% include bc path='Zoom Steps (+/- Keys)| '%} Sets the percentage of a single zoom step via {% include key key='+' %} {% include key key='-' %} keys
- {% include bc path='Rotation Steps (Arrow Keys)| '%} Sets the number of degrees of a single rotation step via {% include key key='left' %} {% include key key='right' %} keys
+- {% include bc path='Animation Type | '%} Sets how the scene animates when a rotation is triggered (double-click or recorded animation). _Full Rotation_ performs a continuous 360° sweep, while _Ping-pong_ oscillates back and forth over a fixed arc (~60°). The preference persists across sessions
+
+### Neurite Rendering
+This section contains options that control how neuronal arbors are drawn:
+
+- {% include bc path='Neurite Style'%} Selects the rendering mode for neurite paths (mutually exclusive):
+ - _Simple Lines_ Basic line rendering (default, fastest)
+ - _Pseudo-Lighting_ Modulates neurite brightness based on orientation relative to the camera, giving a sense of depth without full 3D geometry
+ - _Shaded Tubes_ Renders neurites as illuminated 3D tubes using per-fragment Phong lighting (requires OpenGL 3.2+)
+ - _Shaded Tubes (Wireframe)_ Same as Shaded Tubes but with a wireframe overlay showing mesh edges
+
+ An additional _Tube Sides..._ option sets the number of sides for tube cross-sections (higher values produce smoother tubes at the cost of performance)
+
+- {% include bc path='Path Smoothing'%} Applies Catmull-Rom spline interpolation to reduce angular kinks at thick line joints. Options: _None_, _Low_, _Medium_, _High_ (corresponding to upsampling factors of 1, 2, 4, and 8, respectively)
+
+- {% include bc path='Depth Perception'%} Fades distant neurites toward the background color to enhance depth cues. Intensity presets include _Subtle_, _Moderate_, _Strong_, and _Full_, or depth fog can be disabled entirely with _None_
+
+### Mesh Rendering
+Options controlling how surface meshes (OBJ files) are rendered:
+- {% include bc path='Mesh Style'%} Selects the shading mode for meshes (mutually exclusive):
+ - _Default_ Fixed-function rendering (jzy3d default pipeline)
+ - _Smooth Shading_ Per-fragment Phong lighting with hemispherical ambient, producing smoother surfaces
+- {% include bc path='Backface Culling'%} Skips back-facing triangles during rendering. This improves performance for closed (watertight) meshes but may cause visual artifacts on open surfaces
### Advanced Settings
Includes advanced controls such as:
diff --git a/_pages/plugins/snt/scripting.md b/_pages/plugins/snt/scripting.md
index 7e8224b3d..0a49d39a8 100644
--- a/_pages/plugins/snt/scripting.md
+++ b/_pages/plugins/snt/scripting.md
@@ -155,7 +155,7 @@ def run():
# Fiji Scripting
-Scripting in Fiji's script editor is perhaps best done using Groovy and python. The latter as quite good autocompletion for objects that are not script parameters. The best way to start a new script is by choosing a boilerplate {% include bc path='Scripts|New|From Template...'%} in SNT or {% include bc path='Neuroanatomy|Boilerplate|'%} in the script Editor. These templates hold boilerplate code in several programming languages (namely [BeanShell](/scripting/beanshell), [Groovy](/scripting/groovy) and [Jython](/scripting/jython)), and include the most essential imports and [script parameters](/scripting/parameters) to facilitate rapid development.
+Scripting in Fiji's script editor is perhaps best done using Groovy and Python. The latter as quite good autocompletion for objects that are not script parameters. The best way to start a new script is by choosing a boilerplate {% include bc path='Scripts|New|From Template...'%} in SNT or {% include bc path='Neuroanatomy|Boilerplate|'%} in the script Editor. These templates hold boilerplate code in several programming languages (namely [BeanShell](/scripting/beanshell), [Groovy](/scripting/groovy) and [Jython](/scripting/jython)), and include the most essential imports and [script parameters](/scripting/parameters) to facilitate rapid development.
# Further Resources
@@ -245,7 +245,7 @@ def do_stuff(viewer):
# Enforce side perspective.
viewer.setViewMode('side')
- # Next, we will applying a color mapping to the axon
+ # Next, we will apply a color mapping to the axon
# using branch order as the metric and the Ice Lut.
# Make an instance of TreeColorMapper using SciJava context.
mapper = TreeColorMapper(context)