~/cropforge — README.md

v1.0.0

Open-source crop simulation runtime.
Built for computational agriculture.

MIT · Python 3.12+ · ICAR-IARI Jharkhand

$ pip install cropforge
GitHub ↗

install

One command to start.

# PyPI (recommended)
$ pip install cropforge 

uv

$ uv add cropforge 

poetry

$ poetry add cropforge 

export extras

$ pip install cropforge[export] 

verify

>>> import cropforge
>>> cropforge.version()
'v1.0.0'

Define your farm in Python.

farm.py
from cropforge import Farm, Field, Crop, Soil, Weather, Terrain
from cropforge.plugins import StandardWheat

farm  = Farm(name='ICAR-Plot', location=(28.6, 77.2))
field = Field(name='Plot A', rows=20, cols=30, area_ha=2.4)
field.set_crop(Crop(species='wheat'))
field.set_weather(Weather.from_csv('data/weather.csv'))
field.set_soil(Soil.from_csv('data/soil.csv', apply='uniform'))
field.set_terrain(Terrain.procedural(rows=20, cols=30, resolution_m=0.5))
farm.add_field(field)

field.use_plugin(StandardWheat)
farm.use_physics(et0=True, radiation=True, erosion=True, sediment_transport=True)

farm.run(days=90)
farm.visualize()  # opens http://localhost:7860

// time-stepping, spatial state, terrain physics, sediment dynamics, Parquet logging, and WebGL 3D dashboard — handled.

capabilities

Everything a researcher needs.

Read the source.

// Full documentation at cropforge.readthedocs.io

What shipped.

CHANGELOG.md v0.6.0 → v1.0.0
v1.0.0  — Community Release
+  Weed competition: spread, water & radiation suppression
+  Planting density + farm.yield_summary() (kg/ha & total)
+  Irrigation animation (enhanced-mode sprinkler)
+  Citation metadata (CITATION.cff), Zenodo, JOSS-ready
+  Community governance, issue templates
 
v0.9.5  — Visual Architecture Complete
+  First-party asset bundles, machinery animation
+  Stress/disease visualizations, enhanced rain particles
+  PBR rendering, morph targets, terrain-aware GLB export
 
v0.9.0  — Photorealistic PBR + GLTF Export
+  MeshStandardMaterial, shadows, sun-angle lighting
+  Plant stage architecture + ModelRegistry
+  Full .glb scene export (Blender / Unreal Engine)
 
v0.8.0  — Terrain Arc Completion
+  Sub-metre resolution (resolution_m param)
+  Sediment dynamics, mass conservation, D8 routing
+  Geomorphological feedback: elevation updates daily
+  LOD 3D renderer — 500×500 fields at 60 fps
+  TiedRidges, VegetativeFilterStrip land preparation
 
v0.7.0 / v0.6.0  — Physics & Terrain Arc
+  Solar incidence engine, wind shadow, clod dynamics
+  Terrain engine (procedural, CSV, GeoTIFF)
+  D8 hydrology coupling, 3D dashboard modal
      

// Full history at readthedocs · GitHub Releases

saswatsundar123/cropforge

stars
forks
open issues
v1.0.0
latest release
MIT
license
View on GitHub →

Live stats from api.github.com

Engineering before marketing.

CropForge is an extensible, transparent, and reproducible runtime for crop simulation research. Every model is inspectable. Every assumption is explicit. Everything is open source.

// No config files. No GUIs. Define your farm in Python — CropForge handles the rest.

community

creator

Built by one researcher, for all researchers.

CropForge was created by Saswat Sundar Rath, a researcher at ICAR-IARI Jharkhand, as an answer to a recurring problem — existing crop simulation tools were either closed-source, configuration-heavy, or too opaque to extend meaningfully.

The goal: a runtime that treats simulation as code, not configuration. Where every model, every parameter, and every assumption is explicit and inspectable. Where extending the physics means writing a Python class, not editing XML.

// CropForge is MIT licensed and built in the open. Contributions, critique, and collaboration are welcome.