Skip to content

EngineeringPaper.xyz is a web app that makes it easy to create, save, and share engineering calculations.

License

Notifications You must be signed in to change notification settings

mgreminger/EngineeringPaper.xyz

Repository files navigation

EngineeringPaper.xyz

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.

platforms_cropped

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.

Microsoft Store Link for EngineeringPaper.xyz App

join_reddit_banner

Learning to Use EngineeringPaper.yxz

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.

Dependencies

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:

  • Pyodide, puts all of the power of Python in your browser using WebAssembly
  • SymPy, Python symbolic math library (this is the core computation engine for EngineeringPaper.xyz)
  • CoolProp, for thermodynamic fluid properties
  • MathLive, math editor component
  • Plotly, used for plotting
  • Quill Editor, rich text editor used for documentation cells
  • Svelte, the javascript front-end framework that EngineeringPaper.xyz is based on
  • Math.js, used for unit parsing
  • ANTLR, parser generator used to parse the math cells

Build Instructions

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