Skip to content

Interactive Shiny app for exploring and comparing construction materials. Includes dynamic filtering, Ashby-style plots, and radar chart comparisons, with a polished themed UI.

Notifications You must be signed in to change notification settings

Thooms-coder/Material_Selector_ShinyApp

Repository files navigation

IA 640 Project 2 — Material Selector (Shiny Application)

Author: Mutsa Mungoshi
Course: IA 640 – Data Visualization
Institution: Clarkson University


Project Overview

This project involves the development of an interactive R Shiny application designed to support material selection for engineering and manufacturing purposes.
Material selection is a critical step in the design process, requiring consideration of multiple mechanical and physical properties to identify suitable materials for a given application.
The application provides an interactive and data-driven interface that allows users to filter materials and visualize property relationships effectively.

Live Application:
View the Shiny App on shinyapps.io


Step 1: Defining the Task

The task identified for this project was the creation of a material selection tool.
This focus was chosen for its practical relevance, scalability, and alignment with real-world engineering workflows.
The tool aims to assist users in narrowing down materials that meet specific design criteria, offering functionality adaptable to multiple user contexts and datasets.


Step 2: Dataset Selection

A dataset suitable for material selection was sourced from Kaggle, originally compiled by the Autodesk Material Library.
This dataset includes records of common metals along with their corresponding mechanical properties.

Selection Criteria:

  • Diversity: Inclusion of multiple physical and mechanical properties from credible sources.
  • Quantity: Sufficient number of records to enable meaningful comparison and filtering.
  • Quality: Consistency, completeness, and standardization of data fields.

The selected dataset provides four essential parameters:

  • Yield Strength (Sy)
  • Ultimate Tensile Strength (Su)
  • Elastic Modulus (E)
  • Density (Ro)

Step 3: Data Cleaning

Data preparation was conducted in two main stages:

  1. Metadata Review: Removal of incomplete or unnecessary fields.
  2. Data Validation: Verification of remaining entries for accuracy and internal consistency.

The dataset was found to be relatively well-structured, requiring minimal transformation.
This enabled greater focus on refining interactivity, visualization, and user interface design.


Step 4: Application Design and Functionality

The Material Selector App integrates interactive filters, data visualization, and download functionality within a unified dashboard.

Core Functionalities:

  • Filtering and Search: Slider-based inputs and a text search box allow users to filter materials based on quantitative thresholds and material names.
  • Dynamic Visualizations:
    • Ashby Plot: Displays strength versus density on logarithmic scales, replicating standard material selection charts.
    • Radar Chart: Enables normalized, side-by-side comparison of selected materials.
    • Scatter Plot: Allows exploration of relationships between any two selected properties.
  • Data Table: Interactive and downloadable table presenting the filtered results.
  • Theming and UI Enhancements: Custom CSS, JavaScript, and tooltips (using shinyBS and fontawesome) were implemented to improve readability, clarity, and user experience.

While the current version focuses on metals, the structure allows easy extension to other material classes such as polymers, ceramics, and composites.


Step 5: Reflection

Developing the Ashby Plot was the most challenging component due to the need for accurate logarithmic scaling and appropriate handling of limited data variation.
This required iterative testing and adjustment of axis ranges and formatting.

The process provided valuable experience with reactive programming in Shiny and the use of Plotly for rendering complex, interactive plots.
Future enhancements could include:

  • Expanding the dataset to cover a broader range of materials and properties (e.g., cost, recyclability, corrosion resistance).
  • Improving computational efficiency for larger datasets.
  • Incorporating multi-criteria decision-making metrics.

Despite current scope limitations, the app demonstrates the feasibility of a scalable, interactive material selection system.
It provides a practical tool that facilitates efficient, data-driven decision-making, reducing design time and improving material evaluation workflows.


File Structure

File Description
app.R Main Shiny application script containing UI and server logic.
materials.csv Dataset containing material properties.
www/ Directory containing CSS, JS, and multimedia assets.
rsconnect/ Deployment metadata for shinyapps.io hosting.
Project 2.pdf Written project report submitted for IA 640.

Running Locally

To run the application locally in RStudio:

# Install dependencies
install.packages(c("shiny", "shinythemes", "dplyr", "DT", 
                   "stringr", "plotly", "shinycssloaders", 
                   "shinyBS", "fontawesome"))

# Launch the app
shiny::runApp()

About

Interactive Shiny app for exploring and comparing construction materials. Includes dynamic filtering, Ashby-style plots, and radar chart comparisons, with a polished themed UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages