0>----------------------------------------------------------------------------<0
1> __ ___ __ ______ __ __ __ <1
0> / |/ /__ _____/ /_ / ____/___ ____ _ / / / /_ __/ /_ <0
0> / /|_/ / _ \/ ___/ __ \ / __/ / __ \/ __ `/ / /_/ / / / / __ \ <0
1> / / / / __/ /__/ / / / / /___/ / / / /_/ / / __ / /_/ / /_/ / <0
1> /_/ /_/\___/\___/_/ /_(_) /_____/_/ /_/\__, (_) /_/ /_/\__,_/_.___/ <1
0> /____/ <0
1>----------------------------------------------------------------------------<1
Version 1.0.1
Better Engineering Through Better Tools
Opinionated collection of websites, software, and guides for Mechanical Engineers. This is a living document and will be updated as I learn more. If you have any suggestions, feel free to open an issue.
Note
The list has one goal in mind: to make a list of the best of the best only. Quality over quantity. Inspired by awesome-mecheng.
- The Mechanical Engineering Hub
- Roadmap
Introductory General Readings ↫
Introductory reading for math and physics ↫
Textbooks & Research Papers Resources ↫
- Library Genesis - The zenith of all online libraries. You can find almost any book here.1
- Sci-Hub - This is a website that has a lot of scientific papers that you can download for free.2
- Sci-Hub X Now! - Fast unrestricted access to academic papers with just a single click in the browser.
- Zotero Scihub - Addon for Zotero and Juris-M to automatically download PDFs from Sci-Hub.
- Open Source Mechanical Engineering Books
- Free Computer Books
Important
To use Sci-Hub, you need to have the DOI (Digital Object Identifier) or the URL of the paper. If you don't have the DOI or the URL, you can use Google Scholar to find the paper and then use Sci-Hub to download it.
Resourceful websites and quick references↫
- PetroWiki - A free resource for petroleum engineering information.
Wiki
- r/EngineeringStudents Wiki - A collection of resources for engineering students.
Wiki
- Learn x in y minutes - Get started with syntax faster.
cheat-sheet
Stuff worth checking out ↫
- The Efficient Engineer - Explores fundamental engineering concepts with animation.
YouTube
- Bartosz Ciechanowski - Explores intreating topics with interactive visualizations.
Blog
- Willem Pennings - Inspiring projects.
Blog
Essential Tools ↫
- Sioyek - A PDF reader that is designed for reading scientific papers. An overview tutorial of the features and capabilities can be found here.
Standalone
- Samarta PDF - Lightweight PDF reader.
Standalone
- Zotero - A free, easy-to-use tool to help you collect, organize, cite, and share research. It is a great tool for organizing your research papers and keeping track of your references.
Standalone
- Smath Studio - A free software that you can use to solve math numerically, and -somewhat- symbolically in notebook style with units.
Standalone
- Engineering paper - Shareable interactive engineering calculations and graphs powered by Python.
Online
- Fxsolver - Huge library of equations and formulas covering all felids of science and engineering.
Online
- Desmos - Online graphing calculator.
Online
- NumPad - Online calculator with units and constants.
Online
- VScode - A code editor that is designed for programming. It has a lot of features that make it easier to program.
Standalone & Online
-
Recommended extensions:
- Vim - Enables Vim keybindings in VScode.3
- Copilot - GitHub Copilot is an AI pair programmer that helps you write code faster. It draws context from the code you're working on, suggesting whole lines or entire functions.
- Markdown All in One - All you need to write Markdown (keyboard shortcuts, table of contents, auto preview and more).
- Markdown Preview Enhanced - Markdown Preview Enhanced is an extension that provides you with many useful functionalities such as automatic scroll sync, math typesetting, mermaid, PlantUML, pandoc, PDF export, code chunk, presentation writer, etc.
- Mermaid - Markdown + Mermaid = diagrams for your documentation.
- Pandoc - Pandoc is a Haskell library for converting from one markup format to another, and a command-line tool that uses this library. It can read markdown and (subsets of) reStructuredText, HTML, and LaTeX, and it can write markdown, reStructuredText, HTML, LaTeX, ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki markup.
- LaTeX Workshop - A complete set of tools for working with LaTeX files in Visual Studio Code.
- Code Spell Checker - A basic spell checker that works well with camelCase code.
- Jupyter - Jupyter notebook support in Visual Studio Code. Supports many languages and kernels. Check out awesome-jupyter.
-
Best used with:
- Anaconda - Anaconda is a distribution of the Python and R programming languages for scientific computing, that aims to simplify package management and deployment. The distribution includes data-science packages suitable for Windows, Linux, and macOS.
- MikTeX - MiKTeX is a typesetting system for the Windows operating system. The distribution includes TeX, pdfTeX, XeTeX, LuaTeX, ConTeXt, and a few more.4
Backend
- WSL - The Windows Subsystem for Linux lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup.5
-
- Obsidian - A note-taking app that is designed for taking notes. It has a lot of features that make it easier to take notes and retrieve them.
Standalone
- Heynote - Scratchpad buffer with blocks, and with many languages support.Great for on-the-fly note taking.
Standalone
- Lyx - A document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG).4
Frontend
Tip
If you find both setting up and using LaTeX and Lyx to be a hassle, you can use Overleaf which is an online LaTeX editor. Moreover, you may want to explore Typst Beta
which aims to overcome the shortcomings of LaTeX.
How to Review Materials ↫
This roadmap is a general guidance for those who wish to review the material in a structured manner. Feel free to modify it to fit your needs.
flowchart TB
subgraph Fundamentals
node_1(["CORE"])
node_2["Math"]
node_3["Physics"]
end
subgraph ME
node_4["Mechanics
- Statics
- Dynamics
"]
node_5["Material Science
- Strength of Materials"]
node_6["Fluid Mechanics"]
node_7["Fundamentals of Engineering"]
node_8["Thermodynamics & Heat Transfer"]
node_9["Electrical
- Power
- Electronics
- Control"]
end
Fundamentals ===A===> ME
subgraph Career
node_19["Career path"]
node_20["Design"]
node_21["FEA"]
node_13["Oil & Gas"]
node_22["Pipeline Eng."]
node_23["Reservoir Eng."]
node_24["Drilling Eng."]
node_25["Production Eng."]
node_26["CAx(D/M/E)"]
node_27["Manufacturing Tech."]
node_31["Manufacturing"]
end
ME ===B==> Career
node_1 --> node_2
node_2 --> node_3
%%node_3 ===A==> node_7
node_7 --> node_4
node_7 --> node_5
node_7 --> node_6
node_7 --> node_8
node_7 --> node_9
%%node_4 --> node_19
%%node_5 --> node_19
%%node_6 --> node_19
%%node_8 --> node_19
%%node_9 --> node_19
node_19 --> node_13
node_20 --> node_21
node_19 -.-> node_20
node_19 -.-> node_31
node_13 --> node_22
node_13 --> node_23
node_13 --> node_24
node_13 --> node_25
node_20 --> node_26
node_31 --> node_26
node_31 --> node_27
Math ↫
flowchart TD
node_1(["calculations"])
node_2{"Simple?"}
node_3("Yes")
node_4("No")
node_5{"Units & readability
are important?"}
node_7("Yes")
node_8("SMath")
node_9("No")
node_10("MS Excel")
node_6{"Do you know Python?"}
node_11("Yes")
node_12("No")
node_13("-Python
-Numpy
-Scipy
-Pint
-Pandas
-Matplotlib ")
node_14("SageMath")
node_15("EngineeringPaper.xyz")
node_16("-Maple
-Matlab
")
node_1 --> node_2
node_2 --"Limited symbolic
capabilities"--> node_3
node_2 --> node_4
node_3 --> node_5
node_5 --> node_7
node_7 --> node_8
node_5 --> node_9
node_9 --"Wanna age faster?"--> node_10
node_4 --> node_6
node_6 --> node_11
node_6 --> node_12
node_11 --> node_13
node_11 --"Hate ur life?"--> node_14
node_7 --> node_15
node_12 --"Feeling like a pirate
or corporate-boy?"--> node_16
Design ↫
flowchart TD
node_1(["Design"])
node_2{"You have the CAD?"}
node_3(["Yes"])
node_4(["No"])
node_5(["Modify and preform FEA"])
node_6(["Using which CAD?"])
node_7(["Any CAD software; does#39;t matter"])
node_8{"Simple FEA?"}
node_9(["Yes"])
node_10(["No"])
node_11(["Use sim add-ons;
most CAD software have them"])
node_12["ANSYS"]
node_13["COMSOL"]
node_14["Ansys Granta"]
node_16(["Structural / Thermal"])
node_15(["Create or Download"])
node_17(["CFD"])
node_19["CFX"]
node_20["Fluent "]
node_21(["Implicit"])
node_18["Ansys Mechanical"]
node_22(["Explicit"])
node_23["Ansys LS-DYNA"]
node_24["- GrabCAD
- Traceparts.com"]
node_25["You have Nvidia GPU?"]
node_26["Ansys Discovery"]
node_15 --> node_6
node_1 --> node_2
node_2 --> node_3
node_2 --> node_4
node_3 --> node_5
node_6 --> node_7
node_5 --> node_6
node_5 --> node_8
node_8 --> node_9
node_8 --> node_10
node_9 --> node_11
node_10 --"Industry gold-standard"--> node_12
node_10 --> node_13
node_12 --> node_14
node_12 --> node_16
node_4 --> node_15
node_12 --> node_17
node_17 --> node_19
node_17 --> node_20
node_16 --> node_21
node_21 --> node_18
node_16 --> node_22
node_22 --> node_23
node_15 --> node_24
node_14 -.-> node_16
node_14 -.-> node_17
node_7 -.->|But...| node_25
node_25 -.-> node_26
node_11 -.-> node_26
Footnotes
-
Vim keybindings provide a more efficient way to navigate and edit text. It's a good skill to have if you're going to be working with code or text a lot. I wouldn't advise using Vim, Neovim or -even worse- Emacs as your main text editor, they are not user-friendly and break often with updates. ↩
-
Lyx is the GUI frontend for LaTex distribution backend (e.g. MikTex, TexLive, etc.). It provides a more user-friendly way to write LaTex documents. ↩ ↩2
-
Although I'm a big advocate for Linux OS (i.e Arch, Debian), the learning curve is steep and it's not for everyone. WSL is a good alternative for those who wish to use Linux commands on Windows OS. ↩