{"id":350734,"name":"BOxCrete","description":"An open-source Bayesian optimization framework for probabilistic strength curve prediction and sustainable mix design of concrete.","url":"https://github.com/facebookresearch/sustainableconcrete","last_synced_at":"2026-06-10T03:30:20.939Z","repository":{"id":203804541,"uuid":"590002393","full_name":"facebookresearch/SustainableConcrete","owner":"facebookresearch","description":"Repository to track versions of concrete strength data, models, and active learning proposals.","archived":false,"fork":false,"pushed_at":"2026-06-04T18:34:36.000Z","size":11373,"stargazers_count":190,"open_issues_count":3,"forks_count":39,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-06-04T19:07:47.300Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/facebookresearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-17T12:51:19.000Z","updated_at":"2026-06-03T18:44:09.000Z","dependencies_parsed_at":"2024-11-06T12:12:22.237Z","dependency_job_id":"eeecd38b-7723-4e93-952c-730d9b8bb77d","html_url":"https://github.com/facebookresearch/SustainableConcrete","commit_stats":null,"previous_names":["facebookresearch/sustainableconcrete"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/facebookresearch/SustainableConcrete","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/facebookresearch","download_url":"https://codeload.github.com/facebookresearch/SustainableConcrete/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34089329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"owner":{"login":"facebookresearch","name":"Meta Research","uuid":"16943930","kind":"organization","description":"","email":null,"website":"https://opensource.fb.com","location":"Menlo Park, California","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/16943930?v=4","repositories_count":1060,"last_synced_at":"2024-12-17T01:36:52.238Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/facebookresearch","funding_links":[],"total_stars":747766,"followers":26201,"following":0,"created_at":"2022-11-02T16:26:31.312Z","updated_at":"2024-12-17T01:36:52.239Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/facebookresearch","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/facebookresearch/repositories"},"packages":[],"commits":{"id":1498986,"full_name":"facebookresearch/SustainableConcrete","default_branch":"main","total_commits":40,"total_committers":5,"total_bot_commits":1,"total_bot_committers":1,"mean_commits":8.0,"dds":0.22499999999999998,"past_year_total_commits":28,"past_year_total_committers":5,"past_year_total_bot_commits":1,"past_year_total_bot_committers":1,"past_year_mean_commits":5.6,"past_year_dds":0.2142857142857143,"last_synced_at":"2026-06-07T02:02:13.643Z","last_synced_commit":"348b0ac9a2a460501a384c615775576e9185d200","created_at":"2024-02-17T23:34:41.897Z","updated_at":"2026-06-07T02:01:58.501Z","committers":[{"name":"Sebastian Ament","email":"sebastianament@meta.com","login":"SebastianAment","count":31},{"name":"Julius Kusuma","email":"125682581+JuliusatMeta","login":"JuliusatMeta","count":5},{"name":"maiqbal2","email":"maiqbal2@illinois.edu","login":"maiqbal2","count":2},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":1},{"name":"Arpit Jain","email":"arpitjain099@gmail.com","login":"arpitjain099","count":1}],"past_year_committers":[{"name":"Sebastian Ament","email":"sebastianament@meta.com","login":"SebastianAment","count":22},{"name":"maiqbal2","email":"maiqbal2@illinois.edu","login":"maiqbal2","count":2},{"name":"Julius Kusuma","email":"125682581+JuliusatMeta","login":"JuliusatMeta","count":2},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":1},{"name":"Arpit Jain","email":"arpitjain099@gmail.com","login":"arpitjain099","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-09T00:00:08.806Z","repositories_count":6254326,"commits_count":884026217,"contributors_count":35052577,"owners_count":1163660,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"facebookresearch/SustainableConcrete","html_url":"https://github.com/facebookresearch/SustainableConcrete","last_synced_at":"2026-06-07T02:00:41.514Z","status":"error","issues_count":0,"pull_requests_count":17,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":86818.4,"issues_closed_count":0,"pull_requests_closed_count":10,"pull_request_authors_count":4,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.17647058823529413,"merged_pull_requests_count":10,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":13,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":95758.22222222222,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":9,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.23076923076923078,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":9,"created_at":"2024-02-01T19:24:16.692Z","updated_at":"2026-06-07T02:00:41.514Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebookresearch%2FSustainableConcrete/issues","issue_labels_count":{},"pull_request_labels_count":{"CLA Signed":15},"issue_author_associations_count":{},"pull_request_author_associations_count":{"CONTRIBUTOR":14,"NONE":3},"issue_authors":{},"pull_request_authors":{"SebastianAment":9,"maiqbal2":4,"dreww2":3,"facebook-github-bot":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-09T00:00:17.805Z","repositories_count":14785464,"issues_count":33468540,"pull_requests_count":110234754,"authors_count":11296598,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"CLA Signed":12},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":11,"NONE":2},"past_year_issue_authors":{},"past_year_pull_request_authors":{"SebastianAment":9,"maiqbal2":4},"maintainers":[],"active_maintainers":[]},"events":{"total":{"DeleteEvent":7,"PullRequestEvent":6,"ForkEvent":9,"WatchEvent":48,"IssueCommentEvent":2,"PushEvent":52,"PullRequestReviewCommentEvent":2,"PullRequestReviewEvent":2,"CreateEvent":7},"last_year":{"DeleteEvent":7,"PullRequestEvent":6,"ForkEvent":5,"WatchEvent":39,"IssueCommentEvent":2,"PushEvent":49,"PullRequestReviewCommentEvent":2,"PullRequestReviewEvent":2,"CreateEvent":7}},"keywords":[],"dependencies":[],"score":6.872128101338986,"created_at":"2026-04-05T07:26:09.821Z","updated_at":"2026-06-10T03:30:20.944Z","avatar_url":"https://github.com/facebookresearch.png","language":"Jupyter Notebook","category":"Consumption","sub_category":"Buildings and Heating","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# BOxCrete: Bayesian Optimization for Sustainable Concrete Mix Design\n\n\u003e 🌐 **[Try the interactive explorer →](https://facebookresearch.github.io/SustainableConcrete/)** — predict concrete strength from mix composition in your browser, no installation needed.\n\nConcrete, the second most widely used material in the world, accounts for **6–8% of global anthropogenic CO₂ emissions**, largely due to Portland cement production (~0.8 tons CO₂ per ton of cement).\nHere, we introduce BOxCrete, an open-source Bayesian optimization framework for probabilistic strength curve prediction and sustainable mix design.\nWe invite researchers and practitioners from all disciplines including AI, machine learning, computer science, materials science, and civil engineering\nto collaborate on discovering more sustainable concrete formulations that are applicable\nto a wide array of construction projects, at scale.\nFor more information,\nplease see [\"BOxCrete: A Bayesian Optimization Open-Source AI Model for Concrete Strength Forecasting and Mix Optimization\"](https://arxiv.org/abs/2603.21525).\n\nThis repository contains probabilistic models and data for the\n\n1) Compressive strength of concrete and mortar mixes\n2) The associated global warming potential (GWP)\n3) Slump prediction using Gaussian Process regression with derived features\n\nas a function of their composition, consisting of cement, fly ash, slag, fine and coarse aggregate, admixtures, and water, to name a few basic ingredients. See `boxcrete/models.py` for implementation details.\n\n### Included Data\n\n- **BOxCrete data** (`data/boxcrete_data.csv`): Combined mortar and concrete mix compositions with strength measurements at multiple curing ages, GWP values, and multiple material sources. This is the single unified dataset used for all model training.\n\n## Installation\n\nInstall directly from GitHub (no cloning required):\n```bash\npip install git+https://github.com/facebookresearch/SustainableConcrete.git\n```\n\nOr install from source for development:\n```bash\ngit clone https://github.com/facebookresearch/SustainableConcrete.git\ncd SustainableConcrete\npip install -e .\n```\n\nFor development (includes testing and linting tools):\n```bash\npip install -e \".[dev]\"\n```\n\nFor running notebooks:\n```bash\npip install -e \".[notebooks]\"\n```\n\n## Usage\n\n```python\nimport torch\nfrom boxcrete.utils import load_concrete_strength, get_bounds\nfrom boxcrete.models import SustainableConcreteModel\nfrom boxcrete.plotting import plot_strength_curve\n\n# Load data and fit models\ndata = load_concrete_strength()\ndata.bounds = get_bounds(data.X_columns)\nmodel = SustainableConcreteModel(strength_days=[1, 28])\nmodel.fit_gwp_model(data)\nmodel.fit_strength_model(data)\n\n# model.model_names shows the ordering: [\"GWP\", \"1-day Strength\", \"28-day Strength\"]\nmodel_list = model.get_model_list()\n\n# Plot strength curves: 100% cement vs 60% fly ash + 40% cement\ncols = data.X_columns[:-1]  # composition columns (without Time)\ncompositions = torch.zeros(2, len(cols))\ncompositions[0, cols.index(\"Cement (kg/m3)\")] = 500.0  # 100% cement\ncompositions[1, cols.index(\"Cement (kg/m3)\")] = 200.0  # 40% cement\ncompositions[1, cols.index(\"Fly Ash (kg/m3)\")] = 300.0  # 60% fly ash\nplot_strength_curve(model, compositions)\n```\n\n### Slump Prediction\n\nThe slump model uses a `SingleTaskGP` with an `AppendDerivedFeatures` input transform\nthat automatically computes the HRWR-to-binder ratio — a key determinant of concrete\nworkability. Slump prediction is opt-in — use `SLUMP_Y_COLUMNS` to include slump\nwhen loading data:\n\n```python\nfrom boxcrete.utils import load_concrete_strength, SLUMP_Y_COLUMNS\n\n# Load data with slump (opt-in)\ndata = load_concrete_strength(Y_columns=SLUMP_Y_COLUMNS)\n\n# Fit the slump model (in addition to GWP and strength)\nmodel.fit_slump_model(data)\n\n# Get slump predictions for a composition\nslump_post = model.slump_model.posterior(compositions)\nprint(f\"Predicted slump: {slump_post.mean}\")\n```\n\nSee [`notebooks/slump_prediction_demo.ipynb`](notebooks/slump_prediction_demo.ipynb) for a complete walkthrough including calibration plots, LOO cross-validation, and feature importance.\n\nThe models can be used for a variety of tasks, including but not limited to\n1) Continuous-time strength curve predictions with uncertainty bands for a user-specified concrete mix.\n2) Experimental design: suggesting promising concrete mixtures to be tested in a lab,\n3) The computation of optimal strength-GWP trade-offs based on user-specified (possibly location-specific) constraints.\n\n# Examples\n\n## Compressive Strength Model\n\nThe `SustainableConcreteModel` in [`boxcrete/models.py`](boxcrete/models.py) includes a strength_model that predicts the evolution of compressive strength as a function of mixture composition. A demo is provided in [`notebooks/strength_curve_prediction_demo.ipynb`](notebooks/strength_curve_prediction_demo.ipynb), which demonstrates how the model can be used to predict the full strength development curve for any user-specified mix. A comprehensive tutorial covering prediction, calibration, Pareto frontiers, and gradient-based experimental design is available in [`notebooks/prediction_and_optimization_tutorial.ipynb`](notebooks/prediction_and_optimization_tutorial.ipynb). The model is based on Gaussian Process (GP) regression and incorporates custom modeling steps to ensure physically consistent strength evolution and calibrated uncertainty.\n\n### Strength Curve Predictions\n\nThe following figure shows predicted strength curves for two compositions: portland cement (blue) and a mix with high cement substitution (green). The model captures the distinct strength development trajectories associated with different binder chemistries while providing physically consistent uncertainty estimates.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"fig/concrete_strength_curves.png\"\u003e\n\u003c/p\u003e\n\n### Model Calibration\n\n#### Cross-Validation on Independent Test Set\n\nWhen the model is trained on the full training dataset and evaluated on an independent set of mixtures, it demonstrates strong predictive performance. The predicted compressive strengths closely match the experimentally measured values across the range of mixes and curing ages.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"fig/concrete_cross_validation.png\"\u003e\n\u003c/p\u003e\n\n#### Training Set Calibration\n\nWhen trained on the mortar and concrete mix strength data contained in this repository, the training set predictions also look sensible and well calibrated.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"fig/concrete_calibration.png\"\u003e\n\u003c/p\u003e\n\n## Experimental Design\n\n### Inferring Optimal Trade-Offs under Constraints\n\nWhile the previous section focused on using the models to predict strength curves,\nwe can also use the trained model to predict what the optimal trade-offs between GWP and strength\nare likely to look like under constraints on the concrete composition\nthat were not necessarily present during the training of the model.\n\nIn particular, the figure below shows the predicted Pareto frontiers\nof GWP and strength subject to two constraints on the water-to-binder ratio,\ni.e.:\n\n1) water-to-binder ratio \u003e 0.2 (solid lines), and\n2) water-to-binder ratio \u003e 0.35 (dashed lines),\n\nas well as constraints on ingredients:\n\n1) no constraints (blue),\n2) no fly ash (orange), and\n3) no slag (green).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"fig/predicted_pareto_frontiers.jpg\"\u003e\n\u003c/p\u003e\n\nNotably, while the figure is purely based on model predictions,\nthe trends in the figure conform to expert knowledge.\nIn particular,\n- the increase in the minimum water-to-binder ratio has an outsize negative effect\non the evolution of strength,\n- removing fly ash from the composition appears to have negligible effect during the time window we consider (\u003c 28 days), and\n- removing slag from the composition has a significant negative effect on strength, similar to the increase in the water-to-binder ratio.\n\nThese are just a few insights we can gain from querying the model,\nand we believe that many more questions about the behavior of concrete\ncan be investigated in a similar way.\n\nFrom a practical perspective, the insight that the exclusion of slag - a by-product of steel production -\nis more significant than the exclusion of fly ash - a by-product of coal power plants -\ncan inform site selection\nfor large construction projects that seek to minimize carbon impact.\n\n### Empirical Pareto Frontier Evolution\n\nThe probabilistic model for compressive strength can in addition be used to design new concrete mixtures that are likely to exhibit an optimal trade-off between strength and GWP.\nThe following figure shows the evolution of the empirical Pareto frontier,\ni.e. the points with empirically optimal trade-offs,\nas a function of our experimental batches.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"fig/empirical_pareto_frontiers.jpg\"\u003e\n\u003c/p\u003e\n\nImportantly, the experimental design methodology has been able to propose mortar mixes\nthat have experimentally proven to exhibit superior trade-offs between GWP and strength\ncompared (orange-yellow) to human-designed mixes (blue-purple).\n\n### Multi-Objective Optimization (Concrete Data)\n\nThe framework also enables multi-objective optimization of early-age (1-day) and later-age (28-day) compressive strength alongside Global Warming Potential (GWP). By systematically exploring the composition space, BOxCrete can generate candidate mixes that balance structural performance requirements with carbon reduction targets.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"fig/concrete_pareto_front.png\"\u003e\n\u003c/p\u003e\n\nThe following figure shows the distribution of model-generated mixes plotted together with the training dataset, illustrating how the optimization explores the design space while remaining guided by experimentally validated compositions.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"fig/concrete_optimization_design_space.png\"\u003e\n\u003c/p\u003e\n\n# Citing\n\nIf you use the data or models contained in this repository, please cite\n[\"BOxCrete: A Bayesian Optimization Open-Source AI Model for Concrete Strength Forecasting and Mix Optimization\"](https://arxiv.org/abs/2603.21525):\n```\n@misc{baten2026boxcrete,\n      title={BOxCrete: A Bayesian Optimization Open-Source AI Model for Concrete Strength Forecasting and Mix Optimization},\n      author={Bayezid Baten and M. Ayyan Iqbal and Sebastian Ament and Julius Kusuma and Nishant Garg},\n      year={2026},\n      eprint={2603.21525},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG},\n      url={https://arxiv.org/abs/2603.21525},\n}\n```\n\nFor the earlier workshop paper that introduced the model with mortar data, please cite\n[\"Sustainable Concrete via Bayesian Optimization\"](https://arxiv.org/abs/2310.18288):\n```\n@misc{ament2023sustainable,\n      title={Sustainable Concrete via Bayesian Optimization},\n      author={Sebastian Ament and Andrew Witte and Nishant Garg and Julius Kusuma},\n      year={2023},\n      eprint={2310.18288},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG},\n      url={https://arxiv.org/abs/2310.18288},\n}\n```\n\n## License\n`SustainableConcrete` is released under the MIT license, as found in the LICENSE file.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/350734","html_url":"https://ost.ecosyste.ms/projects/350734"}