{"adoption": {"forks": 333, "observed_at": "2026-08-28T04:06:33.799521+00:00", "stars": 2281}, "canonical_url": "https://ross.abutalabs.com/products/llmsresearch-paperbanana", "card": {"archived": false, "artifact_type": "library", "description": "Open source implementation and extension of Google Research’s PaperBanana for automated academic figures, diagrams, and research visuals, expanded to new domains like slide generation.", "domain": ["artificial-intelligence", "large-language-models", "data-visualization", "education", "developer-tools"], "enriched": true, "function": ["agent-framework", "image-processing", "data-visualization", "llm-inference", "mcp", "cli"], "health_score": 98, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["llmsresearch/paperbanana"], "name": "llmsresearch/paperbanana", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-08-17T18:00:05+00:00", "repo": "llmsresearch/paperbanana", "stars": 2281, "tags": ["academic-diagrams", "diagram-generation", "scientific-visualization", "text-to-image", "gemini", "multiagent", "vlm", "research-automation", "slide-generation", "mcp-server", "ai-agents"], "topics": ["academic-research", "arxiv", "gemini", "llm", "llms", "mcp", "mcp-server", "multiagent", "neurips", "scientific-visualization", "academic-diagrams", "paperbanana", "agentic-ai", "diagram-generation", "google-gemini", "research-automation", "research-tools", "text-to-image", "vlm", "python-ai-research-tools"], "urls": [], "use_cases": ["generate academic paper figures from text descriptions", "create publication-quality diagrams for a research paper", "make statistical plots for a NeurIPS submission", "generate slide decks and visuals from research notes", "render architecture diagrams for an arxiv paper", "automate scientific illustration with an LLM agent", "generate research visuals via an MCP server"], "what_it_is": "An open-source, community implementation of Google Research's PaperBanana paper, providing an agentic Python framework that generates publication-quality academic diagrams, figures, and statistical plots from text descriptions using LLMs/VLMs like Gemini and OpenAI models. It also extends to new domains such as slide generation and can run as an MCP server.", "when_to_avoid": ["you need a general-purpose graphic design or photo editing tool", "you require exact fidelity to Google's internal original system, since this is an unofficial reimplementation", "you need offline generation without access to LLM APIs like Gemini or OpenAI"], "when_to_choose": ["you need automated, publication-quality academic figures or diagrams from text", "you want an agentic, extensible pipeline for research visuals or slide generation", "you want to integrate diagram generation into LLM tooling via MCP"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/llmsresearch-paperbanana", "repo": "llmsresearch/paperbanana", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:33.799521+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:41:21.836838+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "741d562958f57acac0d9a97dc1e617894760c70a28a64c8d426416956e2a4306", "fetched_at": "2026-08-28T04:06:33.799521+00:00", "kind": "readme", "missing": false, "url": "https://github.com/llmsresearch/paperbanana"}, {"content_hash": "ca5eac40d6337057588774695bdc1e55b878a456acbb7c6ab0ea42265447b86e", "fetched_at": "2026-08-29T10:21:34.539133+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/paperbanana/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 15, "rhythm": 88}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 210, "days_push": 16, "days_rel": 83, "gap_med": 0, "n_releases_24m": 6}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}