Skip to content

UCD ECS 193A B (CS Senior Design) Proposals

Jason K. Moore edited this page Dec 8, 2015 · 7 revisions

PyDy Simulation GUI Improvements

Aim

The goal of this project will be to add significant improvements and features to the PyDy visualization web app.

Background

PyDy is an open source Python based software package that allows a user to develop mathematical models that predict the motion of complex multibody systems such as robots, musculoskeletal systems, and spacecraft. First, the user develops a symbolic set of ordinary differential or differential algebraic equations using tools in the SymPy Mechanics package. This model is used to generate low level code for the evaluation of the equations which are used to simulate the system forward in time. The results of the simulation are then displayed as 3D graphics in an interactive web browser based GUI that leverages the Jupyter widget functionality and WebGL through the three.js library.

Approach

The team will need to learn about the current software design and evaluate the web app user interface for improvements. In particular, we are looking to add a robust Javascript testing suite, leverage the pythreejs library as a new backend (see PR#297), come of up with a responsive and mobile supported UI, and add features, such as the ability to import CAD models into the visualizer. The development workflow for SymPy/PyDy will need to be followed for submitting patches.

Skills

Students should either have familiarity with or want to learn about HTML, CSS, Javascript, Python, WebGL, SymPy, PyDy, Jupyter, and three.js.

Deliverables

The students will be expected to deliver the source code that implement the agreed upon features, bug fixes, and improvements in the form of atomic Github pull requests to the main PyDy repository where each contribution includes unit tests and accompanying documentation. The code will be must be reviewed by the students and/or the PyDy software developers.

Expected Outcome

The expected outcome is a significantly improved and tested UI that works well in all modern browsers and the latest Jupyter versions.

PyDy Website Overhaul and Automated Example Gallery

Aim

The goal of this project will be to redevelop the PyDy website to be attractive and functional with an automated system of displaying example PyDy problems in a gallery with 3D visualizations, source code, and graphics.

Background

PyDy is an open source Python based software package that allows a user to develop mathematical models that predict the motion of complex multibody systems such as robots, musculoskeletal systems, and spacecraft. First, the user develops a symbolic set of ordinary differential or differential algebraic equations using tools in the SymPy Mechanics package. This model is used to generate low level code for the evaluation of the equations which are used to simulate the system forward in time. The results of the simulation are then displayed as 3D graphics in an interactive web browser based GUI that leverages the Jupyter widget functionality and WebGL through the three.js library.

We currently have a small set of example problems that are difficult to see in action. Our website links to the source code for these examples and some Jupyter notebooks, but we'd like to have an automatically generated gallery that displays the input and output of the examples in a on the website. The visitors of the website should be able to interact with the visualizations and see the code that generated them.

Approach

The team will need to evaluate other similar galleries and websites from other projects and develop a concept for the new web design. They will also need to learn about how the examples work, develop a standard for example submissions, and a tool that extracts the examples and generates proper HTML/CSS/Javascript for the website.

Skills

Students should either have familiarity with or want to learn about HTML, CSS, Javascript, Python, WebGL, SymPy, PyDy, Jupyter, Sphinx, and three.js.

Deliverables

The students will be expected to deliver the source code in the form of atomic Github pull requests to the main PyDy website repository where each contribution includes unit tests and accompanying documentation. The code will be must be reviewed by the students and/or the PyDy software developers. The website will need to be automatically deployed to Github pages.

Expected Outcomes

An improved website experience for users interested in PyDy that gives users easy access to our example problems without installing and running the software.

Clone this wiki locally