{"id":26898237,"url":"https://github.com/ovitrac/sfppylite","last_synced_at":"2026-04-27T21:31:15.625Z","repository":{"id":283564174,"uuid":"952180960","full_name":"ovitrac/SFPPylite","owner":"ovitrac","description":"SFPPy running in a browser with Jupyterlite","archived":false,"fork":false,"pushed_at":"2025-04-06T15:26:36.000Z","size":78581,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T16:28:55.497Z","etag":null,"topics":["chemicals","compliance","efsa","fda","food-contact","food-packaging","jupyterlite","migration","modeling-and-simulation","plastics","python","recycled","recycling","regulation"],"latest_commit_sha":null,"homepage":"https://ovitrac.github.io/SFPPylite/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ovitrac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-20T21:32:38.000Z","updated_at":"2025-04-06T15:26:40.000Z","dependencies_parsed_at":"2025-04-06T16:33:55.916Z","dependency_job_id":null,"html_url":"https://github.com/ovitrac/SFPPylite","commit_stats":null,"previous_names":["ovitrac/sfppylite"],"tags_count":0,"template":false,"template_full_name":"jupyterlite/demo","purl":"pkg:github/ovitrac/SFPPylite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovitrac%2FSFPPylite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovitrac%2FSFPPylite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovitrac%2FSFPPylite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovitrac%2FSFPPylite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ovitrac","download_url":"https://codeload.github.com/ovitrac/SFPPylite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovitrac%2FSFPPylite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32356596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chemicals","compliance","efsa","fda","food-contact","food-packaging","jupyterlite","migration","modeling-and-simulation","plastics","python","recycled","recycling","regulation"],"created_at":"2025-04-01T05:16:27.210Z","updated_at":"2026-04-27T21:31:15.618Z","avatar_url":"https://github.com/ovitrac.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **🐍 SFPPy-Lite 🌐**\n\u003cdiv align=\"center\"\u003e\n\n| ![Generative Simulation](extra/assets/logo.png) | This project is part of the \u003cbr /\u003e[Generative Simulation](https://github.com/ovitrac/generativeSimulation) demonstrators | Say it.\u003cbr /\u003eSimulate it with AI. | \u003cimg src=\"extra/assets/SFPPy.svg\" alt=\"SFPPy GPT\" width=\"90px\" /\u003e |\n| ----------------------------------------------- | ------------------------------------------------------------ | --------------------------------- | -----------------------------------------------------------: |\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"extra/assets/SFPPy_latte04.jpg\" alt=\"SFPPylite\" height=\"140px\" /\u003e\n\u003cimg src=\"extra/assets/SFPPy_latte05.jpg\" alt=\"SFPPy Latte\" height=\"140px\" /\u003e\u003cimg src=\"extra/videos/BPAdance2.gif\" alt=\"BPA Dance\"  height=\"140px\" /\u003e\n\u003cimg src=\"extra/assets/SFPPydancing.jpg\" alt=\"SFPPy: AI can help demonstrate safety\" height=\"140px\" /\u003e\n\u003c/div\u003e\n\n\n---\n\n\u003e 🍏⏩🍎 **SFPPy**: *A Python Framework for Food Contact Compliance \u0026 Risk Assessment*  \n\u003e\n\u003e | \u003cimg src=\"extra/assets/SFPPy_social.png\" alt=\"SFPPy – Scientific Framework for Food Packaging\" width=\"320\"/\u003e | [![ChatGPT SFPPy \u0026 SFPPylite](https://img.shields.io/badge/ChatGPT-SFPPy_\u0026_SFPPylite-orange?logo=openai)](https://chatgpt.com/g/g-6780fa0b1180819198ea1d962dd4064c-sfppy) \u003cbr/\u003e 🔥A custom AI assistant 🤖 extensively trained on **SFPPy** 🏋🏻. It helps you explore and use the framework: from the **principles of migration modeling** ⚙️ to **first simulations** 📈, **regulatory compliance** ✅, **interpretation** 📊, and **reporting**📝. |\n\u003e | :----------------------------------------------------------: | :----------------------------------------------------------- |\n\n\n\n### 🚀 SFPPyLite\n\n**No installation. Runs entirely in your browser. Try it now✨:**\n\n\u003e 🟢 Status update: **Production-ready** with full support for SFPPy notebooks  \n\u003e ✅ Complete support for simulation, plotting, curve fitting, and export to PDF/XLSX/CSV  \n\u003e 🌍 Integrated databases: EU Regulation Annex I, US FDA FCN lists, Chinese positive lists — ~1300 substances included with toxicological assessment   \n\u003e 📦 Runs seamlessly in-browser — no setup needed, fully compatible with modern tablets  \n\u003e 🗃️ Files persist in your browser between sessions — drag \u0026 drop your own files anytime   \n\u003e 🔄 Automatically stays up to date with the latest data and features \n\n\n\n\u003ca href=\"https://ovitrac.github.io/SFPPylite/lab/index.html?path=demo.ipynb\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SFPPylite-LAUNCH%20in%20your%20browser-blueviolet?logo=jupyter\u0026style=for-the-badge\" alt=\"🧪 Try it online!\"\u003e\u003c/a\u003e\u003ca href=\"https://ovitrac.github.io/SFPPylite/files/\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/SFPPylite-Find%20a%20Notebook-violet?logo=jupyter\u0026style=for-the-badge\" alt=\"🔎📒📘📕📗 Find a Notebook first\"\u003e\u003c/a\u003e\n\n\n\n---\n\n### 🚀 What is SFPPy-Lite?\n\n🌐 **SFPPy-Lite** is a **lightweight (30 MB), browser-based preview** of the full **SFPPy framework**.\n It is built on [**JupyterLite**](https://jupyterlite.readthedocs.io/), and runs Python entirely in the browser using [**Pyodide**](https://pyodide.org/) (WebAssembly-based).\n\nYou can explore and use **SFPPy’s core functionalities** **instantly** — with **no installation required** and **nothing to configure**.\n \u003cins\u003eCurrent performance is impressively close to that of a native desktop application.\u003c/ins\u003e\n\n![SFPPylite](https://github.com/ovitrac/SFPPylite/raw/refs/heads/main/extra/videos/SFPPylite.gif)\n\n---\n\n### 🍏⏩🍎 Access the Full SFPPy Framework\n\n\u003ca href=\"https://github.com/ovitrac/SFPPy\" target=\"_blank\" title=\"SFPPy – Python Framework for Food Contact Compliance\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SFPPy-%F0%9F%8D%8F%E2%8F%A9%F0%9F%8D%8E_PARENT PROJECT-4CAF50?style=for-the-badge\u0026logo=python\" alt=\"SFPPy 🍏⏩🍎\"\u003e\n\u003c/a\u003e\n\n\n\n---\n\n### ـــــــــــــــﮩ٨ـStatus: moved from 🚧 *Demo* to 🟢 *Ready for Production*\n\n\u003e [!WARNING]\n\u003e 💡 **Start Here**: Launch the notebook `demo.ipynb` to begin (or watch the [video walkthrough](https://ovitrac.github.io/SFPPy/SFPPylite_demo.html)).  \n\u003e\n\u003e ✅ All components are now operational, including notebooks under 📂**Notebooks/**, as well as **graphical interfaces**, **simulation**, **plotting**, **curve fitting**, and **export to PDF/XLSX**.  \n\u003e\n\u003e ⏱️ **SFPPyLite** runs at approximately half the speed 🌗 of the desktop version. However, all notebooks execute in under one minute. This performance is sufficient for practical use, with the caveat that **native in-browser execution** (via Pyodide/WebAssembly) imposes some limitations.  \n\u003e\n\u003e 🪧🌐  🇪🇺 **Annex I of Regulation (EU) 10/2011**, 🇺🇸 **US FDA Food Contact Notification list** and 🇨🇳 **Appendices A1-A7 of Standard GB 9685-2016** are included and searchable.  \n\u003e\n\u003e 🚩 **PubChem substance retrieval** is *partially functional*: the module `private.pubchemspy` has been adapted for JupyterLite, but **write operations may fail** due to incompatibilities between **Pyodide** and **IndexedDB**, the browser’s internal filesystem.  \n\u003e\n\u003e ❌ **ToxTree** is not supported, as it cannot currently be compiled to **WebAssembly**.  \n\u003e\n\u003e 🗃️ Files (notebooks, scripts, datasets, etc.) are **persistently stored** in your browser across sessions. Your data remains safe unless using **private/incognito mode**. You can **drop files** into the interface or **download/export** any file as needed.\n\u003e\n\u003e \n\n\n\n---\n\n### 🤖💻🌐 Comparison of `SFPPy` Across Platforms: Desktop, Lite, and Google Colab\n\n🧭 **Find the platform that fits best your requirements: ease, confidentiality, archiving, assistance**.\n\n*All usage options are free of charge.*\n\n|                                    Feature / Capability | 💫💻 **SFPPy (Desktop)**                            | 🌐 **SFPPyLite (Browser)**                             | ☁️ **SFPPy in Google Colab**              |\n| ------------------------------------------------------: | ------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------- |\n|   **AI-powered assistance (*e.g.* for interpretation)** | ❌ Not available or use **Jupyter Lab** extensions | ❌ Not available or use external extensions            | ✅ Available (via Gemini)                 |\n|                               **Installation required** | Yes (Python + dependencies)                       | ❌ No installation (runs in-browser)                   | ❌ No installation (via bootstrap script) |\n|                            **Notebook execution speed** | Full native performance                           | ⏱️ ~2× slower (WebAssembly limits)                     | ✅ Fast (depends on Google backend)       |\n|                **Simulation resolution / memory usage** | High (limited by system resources)                | Reduced for complex models (browser memory limits)    | High (usually)                           |\n|               **Graphical plotting (SVG, PNG, Retina)** | ✅ Full support                                    | ✅ Full support                                        | ✅ Full support                           |\n|                    **Curve fitting and modeling tools** | ✅ Available                                       | ✅ Available                                           | ✅ Available                              |\n|                     **Export formats (PDF, XLSX, CSV)** | ✅ Full support                                    | ✅ Full support                                        | ✅ Full support                           |\n|                   **Annex I (Regulation (EU) 10/2011)** | ✅ Integrated and queryable                        | ✅ Integrated and queryable                            | ✅ Integrated and queryable               |\n|                              **US FDA FCN list (2025)** | ✅ Integrated and queryable                        | ✅ Integrated and queryable                            | ✅ Integrated and queryable               |\n| **Appendices A1-A7 (Chinese standard GB GB 9685-2016)** | ✅ Integrated and queryable                        | ✅ Integrated and queryable                            | ✅ Integrated and queryable               |\n|                         **PubChem substance retrieval** | ✅ Fully functional                                | ⚠️ Partial (read-only, limited write support)          | ✅ Full access                            |\n|                            **Toxicological assessment** | ✅ Fully functional                                | ⚠️ Cramer class and alerts for shipped substances only | ✅ Fully functional                       |\n|                                 **ToxTree integration** | ✅ Supported                                       | ❌ Not supported (WebAssembly incompatible)            | ✅ Supported                              |\n|         **Self-archiving and reporting (PDF + .ipynb)** | ✅ Automatic or manual                             | ❌ Not supported                                       | ✅ Manual (download/export)               |\n|             **Session persistence / multi-tab support** | Depends on setup                                  | ✅ Fully supported (via IndexedDB)                     | ❌ Not persistent between sessions        |\n|                                       **Offline usage** | ✅ Once installed                                  | ✅ After initial load (cached in browser)              | ❌ Requires internet                      |\n|                         **Custom file upload/download** | ✅ OS-level                                        | ✅ Browser-based (drag \u0026 drop or panel)                | ✅ Upload/download via Colab UI           |\n|                                **🛠️ Updating Mechanism** | 🔁 Manual updates via Git or package manager       | 🔄 Always updated to latest sources (on load)          | 🔄 Bootstrapped from latest version       |\n\n\n\n---\n\n### 💫 Requirements\n\n🌐**SFPPy-Lite** has been tested successfully on:\n\n- ✅ Firefox 90+\n- ✅ Chrome / Chromium 89+\n- ✅ Safari  (Mac OS, IOS)\n- ❓ ❌ Other Mobile browsers: not fully supported (to be tested case-by-case)\n\n---\n\n### 🧰 Powered by\n\n- [JupyterLite](https://jupyterlite.readthedocs.io/)\n- [Pyodide](https://pyodide.org/)\n- [SFPPy](https://github.com/ovitrac/SFPPy) – Full Python framework\n\n---\n\n### 📬 Feedback?\n\n💬 Found a bug or have suggestions? [Open an issue](https://github.com/ovitrac/SFPPy/issues) or reach out via email — feedback is welcome!\n\n\n\n---\n\n### 🍏⏩🍎 `SFPPy`: Built for AI. Ready for Simulation.\n\n🤖 +⚖️ *Can robots like **GPT** really evaluate food contact compliance using **SFPPy**?* *Check out the intriguing answers from two GPT-powered experts [here](https://github.com/ovitrac/SFPPy/wiki/🤖-Ask-GPT-to-demonstrate-compliance-with-SFPPy)!*.\n\n| [\u003cimg src=\"extra/assets/page1.png\" alt=\"page1\" style=\"zoom:50%;\" /\u003e](https://github.com/ovitrac/generativeSimulation)\u003csmall\u003e☝🏻Click on the image to learn more.\u003c/small\u003e | 🔮**Explore the future.**  Coding is a language—and with generative AI, we can bridge real-world problems to simulation-ready computer code. Python is the medium of choice, as it remains the most fluent language for AI systems.\u003cbr /\u003e\u003cbr /\u003e╰┈➤***Prompts accelerate simulation prototyping** and the design of complex case scenarios. Thanks to the abstract nature of this interface, there are no constraints on the level of complexity: it operates independently of the underlying mathematical or numerical methods.*\u003cbr /\u003e |\n| :----------------------------------------------------------- | :----------------------------------------------------------- |\n| \u003csmall\u003eCredits: [Olivier Vitrac](mailto:olivier.vitrac@gmail.com)\u003c/small\u003e | 🤔**With respect to regulatory compliance**, AI assists you by generating informed scenarios and interpretations—but **you remain the decision-maker**.\u003cbr /\u003e |\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovitrac%2Fsfppylite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovitrac%2Fsfppylite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovitrac%2Fsfppylite/lists"}