{"id":27149837,"url":"https://github.com/keminghe/strain-seer","last_synced_at":"2025-04-08T13:26:35.828Z","repository":{"id":285116718,"uuid":"956881945","full_name":"KemingHe/strain-seer","owner":"KemingHe","description":"A Streamlit app for 2D strain analysis using fiducial markers, designed for analyzing material deformation from image sequences.","archived":false,"fork":false,"pushed_at":"2025-04-03T18:21:56.000Z","size":18759,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T11:08:52.929Z","etag":null,"topics":["poetry","pytest","scipy","streamlit"],"latest_commit_sha":null,"homepage":"https://strain-seer.streamlit.app","language":"Python","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/KemingHe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-29T03:28:33.000Z","updated_at":"2025-04-03T23:01:04.000Z","dependencies_parsed_at":"2025-03-29T16:41:31.486Z","dependency_job_id":null,"html_url":"https://github.com/KemingHe/strain-seer","commit_stats":null,"previous_names":["keminghe/strain-seer"],"tags_count":0,"template":true,"template_full_name":"KemingHe/agentic-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KemingHe%2Fstrain-seer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KemingHe%2Fstrain-seer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KemingHe%2Fstrain-seer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KemingHe%2Fstrain-seer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KemingHe","download_url":"https://codeload.github.com/KemingHe/strain-seer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247850153,"owners_count":21006548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["poetry","pytest","scipy","streamlit"],"created_at":"2025-04-08T13:26:35.208Z","updated_at":"2025-04-08T13:26:35.819Z","avatar_url":"https://github.com/KemingHe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [👁️ Strain Seer](https://github.com/KemingHe/strain-seer)\n\n\u003cdiv align=\"center\"\u003e\n\n[![A Streamlit app for 2D strain analysis using fiducial markers, designed for analyzing material deformation from image sequences](https://socialify.git.ci/KemingHe/strain-seer/image?description=1\u0026language=1\u0026logo=https%3A%2F%2Fraw.githubusercontent.com%2FKemingHe%2Fstrain-seer%2Fmain%2Fdocs%2Fstrain-seer-icon.png\u0026name=1\u0026owner=1\u0026theme=Dark)](https://github.com/KemingHe/strain-seer)\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/KemingHe/strain-seer/build-test.yaml)](https://github.com/KemingHe/strain-seer/actions/workflows/build-test.yaml) \u0026nbsp; [![Codcov Status](https://codecov.io/gh/KemingHe/strain-seer/graph/badge.svg?token=BCJ4AJUW1I)](https://codecov.io/gh/KemingHe/strain-seer) \u0026nbsp; [![GitHub License](https://img.shields.io/github/license/KemingHe/strain-seer)](https://github.com/KemingHe/strain-seer/blob/main/LICENSE) \u0026nbsp; [![GitHub Release](https://img.shields.io/github/v/release/KemingHe/strain-seer)](https://github.com/KemingHe/strain-seer/releases)\n\n\u003c/div\u003e\n\n## 🚀 Try It Now\n\n1. **Live Demo**: Visit [strain-seer.streamlit.app](https://strain-seer.streamlit.app)\n   - Note: The demo may take a few moments to wake up if it's been inactive\n   - No installation required - just open and start analyzing!\n\n2. **Demo PDF**: Check out our [example analysis](docs/strain-seer-demo.pdf) showing a complete use case\n   - Perfect for understanding the workflow before trying it yourself\n   - Includes step-by-step screenshots and results\n   - Sample data files are available in the docs directory, including [raw data](docs/strain-seer-demo-raw-data.csv) and [analysis results](docs/strain-seer-demo-analysis-result.csv)\n\n3. **Local Installation**: See [Quick Start](#-quick-start) below for detailed setup instructions\n\n## 🎯 Applications\n\nStrain Seer is particularly useful for:\n\n- **Material Science \u0026 Engineering**: Study polymer deformation, composite materials, and structural components\n- **Biomechanics**: Analyze soft tissue mechanics and biological material behavior\n- **Manufacturing**: Monitor material fatigue, quality control, and process optimization\n- **Research \u0026 Development**: Develop custom strain formulations and multi-scale analysis methods\n\nFor a detailed understanding of 2D strain analysis and how Strain Seer implements it, check out our [Understanding 2D Strain](docs/understanding-2d-strain.md) guide, which includes point labeling conventions, strain tensor explanations with visual examples, and step-by-step calculation processes.\n\n## 🚀 Quick Start\n\n### Option 1: Using Published Docker Image (Recommended)\n\n```bash\n# Pull and run the latest version\ndocker run -d -p 8501:8501 --name strain-seer ghcr.io/keminghe/strain-seer:latest\n\n# Or pull a specific version\ndocker run -d -p 8501:8501 --name strain-seer ghcr.io/keminghe/strain-seer:v1.0.0\n```\n\nFor detailed Docker setup and configuration, see our [Docker Design](docs/docker-design.md) documentation, which covers multi-stage builds, dependency management, security considerations, and container lifecycle management.\n\n### Option 2: Building Docker Image Locally\n\n```bash\n# Build and run with Docker\ndocker build -t strain-seer .\ndocker run -d -p 8501:8501 --name strain-seer strain-seer\n```\n\n### Option 3: Local Installation (Advanced)\n\n```bash\n# Install pyenv (recommended for Python version management)\ncurl https://pyenv.run | bash\n\n# Install Python 3.12.5 using pyenv\npyenv install 3.12.5\npyenv global 3.12.5\n\n# Install Poetry if not already installed\ncurl -sSL https://install.python-poetry.org | python3 -\n\n# Clone and setup\ngit clone https://github.com/KemingHe/strain-seer.git\ncd strain-seer\n\n# Create and activate virtual environment\npoetry env use python3.12.5\npoetry env activate\neval \"$(poetry env activate)\"\n\n# Install dependencies\npoetry install\n\n# Run the app\nstreamlit run streamlit_app.py\n```\n\n## 🛠️ Key Features\n\n- **Interactive Point Annotation**: Easily mark fiducial points on your images\n- **Real-time Strain Analysis**: Get instant feedback on material deformation\n- **Multiple Strain Formulations**: Support for both small and Green-Lagrangian strain calculations\n- **Data Export**: Export results in various formats for further analysis\n- **Customizable Analysis**: Extend the tool with your own analysis methods\n\n## 📚 Documentation\n\nOur documentation is structured to help you understand, use, and extend Strain Seer:\n\n- [Understanding 2D Strain](docs/understanding-2d-strain.md): A comprehensive guide to strain analysis fundamentals with clear labeling conventions, visual examples, and numerical calculation walkthroughs\n- [Developer Guide](docs/developer-guide.md): Detailed documentation for extending and customizing Strain Seer's core functionality, including core components, customization guides, and dependency management\n- [Testing Strategy](tests/README.md): Our approach to testing, focusing on core strain analysis algorithms and data processing while maintaining a pragmatic balance with UI testing\n- [Version Management](docs/version-management.md): Guidelines for semantic versioning, version bumping process, conventional commit messages, and best practices for release management\n- [Docker Design](docs/docker-design.md): Detailed information about container deployment, multi-stage builds, security considerations, and container lifecycle management\n\nThe project also includes automated CI/CD workflows in the `.github/workflows` directory:\n\n- [**Unit Tests**](.github/workflows/unit-test.yaml): Ensures code quality with pytest and coverage reporting\n- [**Build Tests**](.github/workflows/built-test.yaml): Validates Docker builds across multiple platforms (AMD64, ARM64)\n- [**Docker Publish**](.github/workflows/docker-publish.yaml): Automatically publishes versioned images to GitHub Container Registry when releases are created\n\n\u003e [!NOTE]\n\u003e\n\u003e The `docs/hammer-challenge` directory contains materials specific to the Make OHI/O 2025 competition and can be safely deleted if you're forking this repository or using it as a template for your own project.\n\n## 🤝 Contributing\n\nWhile this is primarily a tool for researchers and developers to customize for their needs, suggestions and improvements are welcome:\n\n1. Fork the repository\n2. Create your feature branch\n3. Commit your changes (following our [version management guidelines](docs/version-management.md))\n4. Push to the branch\n5. Create a Pull Request\n\nPlease follow our [testing strategy](tests/README.md) to ensure your changes maintain the project's quality standards. We prioritize testing core strain analysis algorithms and data processing functions, while taking a pragmatic approach to UI testing.\n\nAll contributions automatically trigger our CI workflows to ensure code quality. For detailed information about the CI/CD pipeline, see the [GitHub Actions workflows documentation](.github/workflows/README.md).\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/KemingHe/strain-seer/blob/main/LICENSE) file for details.\n\n## 📝 Copyright\n\n© 2025 [Keming He](https://github.com/KemingHe). All rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeminghe%2Fstrain-seer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeminghe%2Fstrain-seer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeminghe%2Fstrain-seer/lists"}