Skip to content

species: Eurasian Beaver (Castor fiber) - #1297

Open
jt55401 wants to merge 1 commit into
mainfrom
species/castor-fiber
Open

jt55401 wants to merge 1 commit into
mainfrom
species/castor-fiber

Conversation

@jt55401

@jt55401 jt55401 commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

Closes #1040

Record and evidence

  • Adds Eurasian Beaver (Castor fiber) for France, with GBIF 4409131 and iNaturalist 43793 checked as accepted species identifiers. The native FR claim follows the documented Rhône remnant; the source also describes later recolonization and reintroductions.
  • lifespan_y: 7.5 is the midpoint of Animal Diversity Web's explicit typical wild lifespan 7–8 years. It is marked derived. ADW's separate wild maximum and captive figures were excluded. A CC BY PLOS field paper reports about 7 years mean age at death for dominant adults in one Norwegian population as context, not as a species-wide substitute.
  • ADW text is CC BY-NC-SA 3.0, used as a last resort for typical wild lifespan and the limited other fields identified in the record; its licence and attribution are retained. Adult mass 22.17 kg is a weighted mean of captured adults in the CC BY PLOS field study. Total length 1.275 m is a disclosed midpoint from the CC BY-SA Wikipedia range. Browse/graze weights are authored simulation allocations.
  • The FR curve uses usable tier A GBIF CC0/CC BY records: 39,710 total, 30,197 with months. The iNaturalist FR tier C count of 924 is below the worker's 1,000-observation threshold and is excluded. This remains an observation-frequency proxy.
  • The local behavior walks to browse, swims near water, and rests in daylight. There is no implicit month filter. The September–November caching display phase is scoped to FR. Dam building and diving are not modeled by the current actions.

Preview and checks

The worker inspected idle, walk, swim and rest in Chromium with software WebGL. No clipping or misplaced colors were observed; the swim and tail are stylised. BioCLIP was not run.

Commit: 43d8e5757a4f11174c3c28ab56bfcb2cd54fc848
species/castor-fiber: 0 errors, 2 warnings
NonCommercialLicense: ADW CC BY-NC-SA 3.0, last-resort use explained above
MissingShoulderHeight: optional value omitted for lack of a defensible source
self-check: 639 files, 0 findings
all-species and all-locale validators: exit 0
pytest tools/tests: 347 passed, 8 skipped
attribution regenerated and clean after refresh
  • Issue claimed and current record/PR state checked
  • Taxonomy, licence, source locators and wild lifespan semantics reviewed
  • FR activity query, counts and usable flags reviewed
  • Behavior actions, month sets and regional phase reviewed
  • Attribution regenerated and committed
  • Species, repository, locale, self-check and tests passed
  • Every declared pose previewed
  • One species per PR; no private paths or restricted source collection committed

@jt55401

jt55401 commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

Hourly maintainer review: 43d8e57

Disposition: changes requested for executable day/night control and tail geometry.

species/castor-fiber/behavior.json: daylight rest is only an idle transition. Reproducer from the public priority rules: sun +40°, water within 30 m, swim chance succeeds, no threat. idle -> swim at priority 20 defeats idle -> rest at priority 0. Once swimming there is no daylight exit; hungry forage can likewise continue after dawn. Add a higher-priority daylight guard from all ordinary active states and exercise dawn/dusk with hunger and nearby water. The record also overrides flee_gait=swim unconditionally, including land states with water as far as the authored 60 m placement radius; movement into water needs an explicit supported transition or public action-contract evidence. These are JSON/contract findings, not a private simulator test. Only browse is eaten; disclose or implement the declared graze component. No month predicates occur, and the caching phase is FR-scoped.

species/castor-fiber/species.json, look.extra_parts[name=paddle_tail]: this box is parented to the already thin tail, with width 0.64 of that parent's width, so it does not form a broad beaver paddle. In all four viewed poses (idle, walk, swim, rest), the tail reads as a narrow rod with a tiny dark tip. Rescale/reparent it to produce one connected broad flat tail, then repeat the pose review. No obvious clipping otherwise.

Evidence checked: the primary Graf et al. Methods confirms 8 adult males at 21.7 kg and 4 females at 23.1 kg; 22.17 kg is the correctly rounded sample-weighted mean. The paper supports walking/swimming/nocturnality and has CC BY terms. ADW Lifespan/Longevity directly labels typical wild 7–8 years, supporting the 7.5 midpoint; the separate Campbell et al. introduction conditions its c.7-year age-at-death statistic on dominant Norwegian adults, correctly kept as context. Wikipedia's length/weight ranges and Rhône history support the conversions/native FR status. Provider GBIF 4409131, active iNaturalist 43793 and Wikidata Q181191 agree. NC remains disclosed for the limited ADW claims. Remove the accidentally copied NC explanation from the CC0 Wikidata source note.

Activity scope/filters are France place 6753/country FR. Fresh GBIF total 39,710 and the fetcher reproduce all 12 values; monthly bins sum to 30,137, also the sum of the record's listed bins, so correct the source note/PR's 30,197 arithmetic. Excluded iNaturalist is explicitly below the chosen 1,000 threshold. New-record diff preserves other species.

Public checks pass: focused validation/attribution (0 errors, NC and optional-height warnings), self-check, all species/locales, pytest 347 passed and 8 skipped; attribution regeneration leaves no tracked diff. Current-head hosted validate is green. No private import/live acceptance assessed. Hold merge pending the behavior and visual corrections.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

species: Eurasian Beaver (Castor fiber)

1 participant