Thinking global, living local

How to use biomass-to-syngas-opensource: size a biomass gasifier

October 19, 2026

Estimate what a biomass gasifier produces from straw, how much tar it makes and whether the syngas is good enough for power or for chemicals.

Open-source tools · How-to · Biomass gasification

How to use biomass-to-syngas-opensource: size a biomass gasifier

Skip to article content
Text Size

Revised · v1.0.0 · what changed

18tests passed in the demo
100 t/dayrice straw in the worked example
75.8%cold gas efficiency (same at every temperature tested)
50.2%inert fraction in the syngas

Code: github.com/herrrickshaw/biomass-to-syngas-opensource

Watch the walkthrough

Watch on YouTube: youtu.be/xHoqtYSpsn0

What it is for

India has an estimated 230 million tonnes a year of unutilised agricultural biomass, and open-field burning is a seasonal air-quality problem. Gasification is one proposed alternative, but it needs a sizing estimate first.

This toolkit gives a traceable first estimate: feedstock characterisation, a gasifier at a chosen temperature and type, tar and particulate cleanup, and a screening of syngas quality for its likely use.

Who it is for

  • Students and analysts exploring biomass-to-energy options
  • Early-stage project teams who need a quick comparison of gasifier types
  • Anyone who wants an estimate they can trace to a literature source
Not for.
  • Detailed engineering design
  • Rate-based cleanup sizing or collection and logistics planning

What you need

RequirementWhyHow to get it
Python 3.10 or newerThe package declares requires-python >= 3.10python.org, or brew install python on macOS
Python packages: CoolProp, scipy, numpy, streamlit, pandasProperty correlations, calculations, tables and the web appInstalled automatically by pip install -e ".[dev]"
A terminal and gitTo clone the repo and run the commandsTerminal on macOS/Linux, or WSL/Git Bash on Windows; or use GitHub Codespaces
Internet for the first install onlypip downloads the packagesNo internet is needed to run the sizing code afterwards
API keys, accounts, licencesNone requiredNo database, server, GPU, model download or API key is needed. The demo used none.

Get the code and an AI assistant

You do not have to be a programmer. Get the repository, give it to an AI assistant, and ask in plain language. Any of these routes works:

ToolWhat you needBest for
GitHubFree account to fork or star; git to clone, or the green Code button, then Download ZIP, or open in CodespacesGetting the code and keeping up with updates
Claude CodeClaude subscription or API key; run claude inside the cloned folderLetting the AI read and run the whole repo
Gemini CLIGoogle account; run gemini inside the cloned folderThe same hands-on workflow with Gemini
Claude.ai, Gemini or ChatGPT in the browserA chat account; upload README.md and the files you care about (or paste the output of git ls-files)Understanding the project and asking questions without installing anything
Other tools (Copilot Chat, Cursor, Codex CLI)Open the cloned folder in the tool and point it at README.md firstEditing and extending the code
git clone https://github.com/herrrickshaw/biomass-to-syngas-opensource.git
cd biomass-to-syngas-opensource
claude      # or: gemini

Install

  1. Make sure Python 3.10 or newer is installed
    python3 --version
  2. Create and activate a virtual environment (keeps the install tidy)
    python3 -m venv .venv && source .venv/bin/activate
  3. Install the package with the test tools. The dependencies (CoolProp, pandas, plotly, streamlit or scipy/numpy) come in automatically from pyproject.toml.
    pip install -e ".[dev]"

Quick start: commands and what you should see

Run the tests

pytest -q tests

18 passed in about 1.3 seconds in the demo.

Size a gasifier for 100 t/day of rice straw

python examples/full_chain_worked_example.py

87.43 mol/s of syngas at 850 C in a fluidized bed, 75.8% cold gas efficiency, tar cut from 29.40 g/s to 0.882 g/s after cleanup, H2:CO of 1.73:1, LHV 5.71 MJ/Nm3 and 50.2% inert gas. The recommended use is direct combustion or gas-engine power only, because the inert share is too high for chemical synthesis.

Optional: interactive app

streamlit run streamlit_app.py

A local web page opens. Present in the repo; not part of the captured demo.

Ways to use it

MethodHow it works
Command line (example scripts)Run the worked example in examples/ and read the printed numbers.
Python libraryImport the modules from the package in your own script or notebook and call them with your own feed and plant size.
Interactive web appRun streamlit run streamlit_app.py from the repo folder for a browser-based version with sliders and charts.
Through an AI assistantOpen the cloned folder in Claude Code or Gemini CLI and ask it to run the example, change the inputs, or explain a result. Or upload README.md and docs/VALIDATION.md to a chat assistant.

Sample prompts for your AI assistant

Copy, paste and edit the parts in [brackets].

  • Explain this repository in plain English: what does it size, what goes in and what comes out?
  • Run the tests and the worked example, then summarise the results in a short table.
  • Compare downdraft, fluidized bed and updraft gasifiers for my feed and explain the tar numbers.
  • Open docs/VALIDATION.md and tell me where this model matches published figures and where it does not.
  • What would I need from a vendor or a licensed simulator before I could rely on these numbers?
  • Change the plant size to [your tonnes per day] and show me which outputs change most.

Limits and honest caveats

  • Conceptual sizing, not detailed engineering design.
  • Measured in the demo: tar yield stayed at 29.39 g/s from 750 to 950 C. It is a lookup by gasifier type, not a temperature model.
  • Measured: cold gas efficiency was 75.8% at every temperature in the sweep, so do not use the model to find an optimum temperature.
  • The syngas was 50.2% inert, so it is rated for power, not as a chemical synthesis feed.
  • The README notes fixed conversions and no rate-based cleanup sizing. Collection and logistics of the straw are the real barrier.
  • The repo as checked has no LICENSE file; check the repo page before reusing the code.

Sources: the biomass-to-syngas-opensource README, docs/VALIDATION.md and examples/ folder, and the video demo run of 18 October 2026.

Revision history.
  • v1.0.0 — 18 October 2026 — first published.

About this article: Researched, written and edited by Umashankar Triplicane Dwarakanathan, with AI research assistance; every figure is meant to trace to the primary source cited. See the Editorial Policy for how sourcing, AI use and corrections work.

Umashankar Triplicane Dwarakanathan
Contact Us
Umashankar Triplicane Dwarakanathan
Investment Promotion & Energy-Sector Leader · Chennai, Tamil Nadu, India
LinkedIn → GitHub → Email +91 78273 81696
How this site works

Data-led analysis of India's trade, currency and industrial policy. Every article is built from primary official sources, and every figure links back to the release, table or filing it came from.

Sources. DGCI&S TradeStat (imports/exports, HSN-wise) · PIB (government press releases, January 2017 to today, refreshed daily) · RBI (circulars, balance of payments) · MoSPI (CPI/WPI, IIP) · PARIVESH (environmental clearances) · CCIL (bond yields) · BIS (policy rates) · SEBI, NSE/BSE and SEC filings for company data.

Interpretation. Figures carry their vintage and retrieval date; estimates and press-reported numbers are labelled as such; where sources disagree, both are shown. Corrections are made visibly, never silently. Articles are written with AI assistance from the cited sources — AI-generated text can misstate figures even when working from real material, so verify any number that matters to a decision against the linked primary source.

footer

Browse all articles by topic

Every piece on this blog, grouped. Or read the full index.

Agriculture & FertilisersAI ToolsChemicalsClimate & CarbonEnergy & FuelsGas & LNGImport SubstitutionIndustrial PolicyMarkets & FinanceMobility & EVPrices & InflationTextilesTrade & Tariffs

Each topic is a live archive page that updates itself as pieces are labelled. It replaces a hand-kept list that had fallen 18 articles behind.