EngineeringPaper.xyz is a web app for engineering calculations that handles unit conversion/checking automatically and also supports plotting, solving systems of equations, and documenting your calculations (see the official blog for many examples). It's easy to share your calculations by creating a shareable link that anyone can open and build off of. Additionaly, you can save and open your files locally if you prefer not to save to the cloud. EngineeringPaper.xyz runs on Mac, Windows, Linux, and ChromeOS and works on all of the major browsers. Additionally, EngineeringPaper.xyz is designed to run well on Android and iOS devices. Launch EngineeringPaper.xyz in your browser to try it out.
All calculations are run on your own device using the Pyodide project to run Python in your browser. The SymPy Python symbolic math library is used to handle all calculations.
There are many ways to learn EngineeringPaper.xyz. The built-in editable tutorial or this tutorial video are good places to start. For other resources, including many video tutorials and example sheets, see the learning EngineeringPaper.xyz blog post. To get your questions answered, or to share calculations you have created using EngineeringPaper.xyz, join the official EngineeringPaper.xyz subreddit.
EngineeringPaper.xyz would not be possible without the many powerful open source projects that it depends on. Here's a partial list of the projects that EngineeringPaper.xyz builds off of:
These instructions are only needed to create a development environment for EngineeringPaper.xyz. To run the app, simply go to EngineeringPaper.xyz. See the contributing guide for information on making contributions to EngineeringPaper.xyz.
Node.js is used for EngineeringPaper.xyz development. If you don't already have node installed, the easiest way to get it installed is to use the Volta node installer.
First, fork and clone this repository. Then, in the cloned project folder, use the following commands to start a local dev server (commands tested on Linux, MacOS, and on Windows using WSL2):
# Install dependencies
npm install
# Run local dev server with live reload (point browser to localhost:8788)
npm run dev
To run the test suite locally, run the following commands (if the dev server is running, close it using Ctrl-C before running these commands):
# Build the production version of the site
npm run build
# run local server
npm run start
# Switch to a new console tab or window for the rest of the commands
# Install playwright browsers (only needs to be done once each time browsers need to be updated)
# Additional installation of dependencies may be required, follow instructions
npx playwright install
# Run test suite
npm run test