Forest Informed Neural Networks
Overview
A hybrid dynamic forest (gap) model (FINN) that can be configured as a fully mechanistic, process-based model, like classic forest gap models, or with its demographic processes (growth, mortality, regeneration) replaced by deep neural networks (DNNs), or any combination of the two. Provides functions to define a model and its mechanistic or empirical components, calibrate it to forest inventory data, and interpret the calibrated processes. FINN is implemented with the 'torch' package, which supplies GPU support and the automatic differentiation used to calibrate the model by stochastic gradient descent; no knowledge of 'torch' is required. The hybrid modeling approach is described in Pichler and Käber (2026) doi:10.1111/2041-210x.70347.
First public release.
FINN is a differentiable forest gap model: a cohort-based dynamic vegetation
model whose demographic processes (competition, growth, mortality, regeneration)
can each be a mechanistic function, a neural network, or a mixture of the two,
all calibrated end-to-end by gradient descent.
Highlights of the current interface:
finn()assembles a model from one process per demographic component, each built withcreateProcess()(mechanistic) orcreateHybrid()(neural network).simulateForest()runs a model forward;fit()calibrates one to data andpredict()scores it, returning patch- and site-level results.- Per-response likelihoods: Gaussian (
"mse"/"gaussian"), Poisson, negative binomial, and a"binomial"likelihood for mortality that takes a closed-cohort count pair (n_at_risk,n_died).
Show all changes in 0.1.0Hide the rest of the changes in 0.1.0
weights = "auto"(the default infit()) scales each loss by its intercept-only baseline, so the six responses are commensurable and every term reads as a fraction of its own null deviance.- Data helpers
makeObsData(),resolveSiteIDs()andmakeInitCohorts()turn a raw tree list into FINN's input tables. - Model interpretation with
ALE(),summary(),feature_importance()andconditionalEffects().
See the vignettes for a guided tour: *Introduction to FINN*, *Plausible
succession from a handful of species*, *Preparing your data for FINN*, *Fitting
FINN to forest inventory data*, and *Mortality*.
From NEWS.md in the release
Install
Health
- OK13 OKNow
- OK8 OK2026-08-10
Documentation
- Help pages
- 40 (6 internal)includes a package overview page
- Examples that run
- 100%12 run in a plain check (3 of them under a condition)
- Exported functions with examples
- 33%
- Documented parameters
- 99%
- Return-value docs
- 100%
- Help pages citing references
- 8%
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- 367
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Issues over time
Commits over time
11 development-tooling and community-health practices detected across 7 families in the upstream repository
Checks run against github.com/finnverse/finn on 2026-10-25.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
GitHub Pages site last deployed 2026-08-11
pkgdown site last built 2026-08-11
Show all practicesHide 3 practices
This repository shows signs of AI coding tools.
- Claude Codefirst seen 2026-06-22Seen in the repository: .claude, .claude/skills, CLAUDE.mdNamed in .Rbuildignore: .claudeNamed in .gitignore: .claude, CLAUDE.local.md
- Claude CodePull requests: 2 from outside contributors, first on 2026-09-08
Dependencies
Installing FINN adds 32 packages (16 with compiled code, 25 MB of source tarballs). Heaviest: ggplot2 6.0 MB, data.table 5.7 MB, torch 1.9 MB.
Code & Tests
Datasets
People & History
- 0.1.0Latest2026-08-09 · current release
- RR 4.6.0 released · 2026-04-24
Package metadata
- First published
- 2026-08-09
- Total releases
- 1 / 1 yrs
- License
- GPL (>= 3) OSI
- Minimum R
- ≥ 4.1.0
- Download size
- 3.7 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("FINN")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-26, which the citation names so these numbers can be found later. More on citing and the projects behind them.