Skip to content

Releases: JuliaSMLM/SMLMRender.jl

v0.4.2

10 Mar 19:47
f3eb8f9

Choose a tag to compare

SMLMRender v0.4.2

Diff since v0.4.1

v0.4.2 - 2026-03-10

Changes

  • Add compose() utility for image layer compositing with blend modes
  • Two blend modes: :additive (sum, clamp to [0,1]) and :replace (later non-black pixels overwrite)
  • Decouples compositing from rendering — enables mixed-strategy overlays (e.g., Gaussian background + Circle overlay)
  • Updated documentation: api_overview.md, docs/src/api.md, docs/src/examples.md

Breaking Changes

  • None

Released via PR #17

Merged pull requests:

  • Add compose() for image layer compositing (#17) (@kalidke)

Closed issues:

  • register (#5)
  • Register v0.3.0 (#12)
  • Register v0.4.0 (#15)

v0.4.1

18 Feb 03:14
1b77b66

Choose a tag to compare

SMLMRender v0.4.1

Diff since v0.4.0

What's Changed

  • Allocation-free colormap LUT with inline interpolation (replaces abstract ColorScheme dispatch)
  • Fused clip+normalize+colormap single-pass operations in intensity color mapping
  • Pre-sized non-zero buffers in clip_at_percentile (eliminates filter(vec(...)) allocations)
  • Pre-built LUT hoisted out of per-emitter loops across all strategy renderers
  • Type assertions to eliminate Union type instabilities in strategy accessor methods
  • Removed accidental BenchmarkTools runtime dependency

Merged pull requests:

  • Release v0.4.1: Allocation-free rendering optimizations (#16) (@kalidke)

v0.4.0

16 Feb 15:50
fe64187

Choose a tag to compare

SMLMRender v0.4.0

Diff since v0.3.1

v0.4.0

New Features

  • ScaleBar.jl integration: scalebar, scalebar_length, scalebar_position, scalebar_color kwargs on all render() paths
  • scalebar_length_um field in RenderInfo reports auto-calculated or explicit scalebar length
  • Fix per-channel clip_percentile in overlay render path
  • New dependency: ScaleBar v0.1

Breaking changes

  • No breaking API changes. All new fields have defaults. Existing code works unchanged. Minor version bump for new dependency and struct fields.

Merged pull requests:

  • Release v0.4.0: ScaleBar integration and overlay clip_percentile fix (#14) (@kalidke)

v0.3.1

10 Feb 18:54
b5ed20e

Choose a tag to compare

SMLMRender v0.3.1

Diff since v0.3.0

v0.3.1

Bug Fixes

  • Fix histogram RGB overflow: field, categorical, and manual renders produced RGB values >1.0 in dense pixels
  • Fix manual histogram dynamic range: replace max_count normalization with percentile clipping

Enhancements

  • Widen RenderConfig.clip_percentile to Union{Float64, Nothing} — pass nothing for saturate mode (no normalization, classic overlay behavior)
  • Wire clip_percentile through render_overlay() and render(smlds::Vector; ...) for end-to-end control (defaults to nothing for overlays)

Released via PR #13

Merged pull requests:

  • Fix histogram RGB overflow with clip_percentile support (#13) (@kalidke)

v0.3.0

09 Feb 18:22
965ebbf

Choose a tag to compare

SMLMRender v0.3.0

Diff since v0.2.0

Breaking changes

  • CircleRender/EllipseRender default radius_factor changed from 2.0 to 1.0
  • Field-based Gaussian brightness uses linear clip+normalize instead of gamma correction

New features

  • Wire clip_percentile from RenderConfig through field/categorical Gaussian rendering
  • Re-export SMLMData via Reexport.jl
  • Add rendering gallery to docs

Other changes

  • Rewrite README with conceptual overview, Config-first API, Unicode field names
  • Replace SMLMSim-based doc examples with self-contained Siemens star test pattern
  • Convert all doc examples to (img, info) tuple pattern with RenderConfig

Merged pull requests:

  • Release v0.3.0: Rewrite docs, wire clip_percentile, re-export SMLMData (#11) (@kalidke)

v0.2.0

07 Feb 20:27
3ff8597

Choose a tag to compare

SMLMRender v0.2.0

Diff since v0.1.0

Breaking changes

  • render() now returns (image, info) tuple instead of bare image or RenderResult2D
  • New RenderConfig <: AbstractSMLMConfig replaces kwargs-only interface: render(smld, config::RenderConfig)
  • RenderConfig has 14 flat fields (strategy, pixel_size, zoom, roi, colormap, etc.)
  • kwargs form render(smld; kwargs...) still works, kwargs match RenderConfig fields exactly
  • RenderInfo <: AbstractSMLMInfo provides timing, backend, emitter counts, output metadata
  • Requires SMLMData 0.7.0 (AbstractSMLMConfig/AbstractSMLMInfo)

Other changes

  • Ellipse rendering support (from feature/ellipse-render branch)
  • All Config/Info types inherit from SMLMData abstract types

Merged pull requests:

  • Add EllipseRender, absolute_frame coloring, and docs (#8) (@kalidke)
  • Add tuple-pattern API with RenderInfo struct (#10) (@kalidke)

v0.1.0

20 Nov 16:34
ad871c1

Choose a tag to compare

SMLMRender v0.1.0

SMLMRender.jl v0.1.0 - Initial Release

Initial public release of SMLMRender.jl, a Julia package for rendering single-molecule localization microscopy (SMLM) data into publication-quality images.

Core Features

Three Rendering Strategies:

  • HistogramRender: Fast binned histograms with field-based color mapping
  • GaussianRender: Smooth blob rendering weighted by localization precision
  • CircleRender: Precision-aware circle rendering for quality visualization

Advanced Color Mapping:

  • Intensity-based color mapping with customizable colormaps
  • Field-based color mapping (z-depth, photon count, frame number, precision)
  • Intensity-weighted field colors for enhanced visualization
  • Colorbar export for publication figures

Multi-Channel Support:

  • Render multiple channels as overlays
  • Automatic color assignment or custom colors per channel

Documentation:

  • Complete Documenter.jl documentation with executable examples
  • Comprehensive API reference
  • Visual examples for all rendering strategies and colormaps

Package Quality

  • 100% docstring coverage for all exported functions
  • Full test suite
  • Production-ready documentation (98/100 quality score)