Skip to content

Opinionated collection of websites, software, and guides for Mechanical Engineers.

License

Notifications You must be signed in to change notification settings

AhmedAlfahdi/Mech.Eng.Hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                  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

The Mechanical Engineering Hub

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.

Table of Contents

  1. The Mechanical Engineering Hub
    1. Table of Contents
    2. Introductory General Readings ↫
    3. Introductory reading for math and physics ↫
    4. Textbooks & Research Papers Resources ↫
    5. Resourceful websites and quick references↫
    6. Stuff worth checking out ↫
    7. Essential Tools ↫
      1. PDF readers and Organizers
      2. Calculations and graphing
      3. Programming, Note Taking, and Document Processing
  2. Roadmap
    1. How to Review Materials ↫
    2. Math ↫
    3. Design ↫

Introductory General Readings

  1. How to read a book
  2. How to read a research paper
  3. How complex systems fail

Introductory reading for math and physics

  1. The Feynman Lectures on Physics
  2. Calculus Made Easy

Textbooks & Research Papers Resources

  1. Library Genesis - The zenith of all online libraries. You can find almost any book here.1
  2. Sci-Hub - This is a website that has a lot of scientific papers that you can download for free.2
    1. Sci-Hub X Now! - Fast unrestricted access to academic papers with just a single click in the browser.
    2. Zotero Scihub - Addon for Zotero and Juris-M to automatically download PDFs from Sci-Hub.
  3. Open Source Mechanical Engineering Books
  4. 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

  1. PetroWiki - A free resource for petroleum engineering information. Wiki
  2. r/EngineeringStudents Wiki - A collection of resources for engineering students. Wiki
  3. Learn x in y minutes - Get started with syntax faster. cheat-sheet

Stuff worth checking out

  1. The Efficient Engineer - Explores fundamental engineering concepts with animation.YouTube
  2. Bartosz Ciechanowski - Explores intreating topics with interactive visualizations.Blog
  3. Willem Pennings - Inspiring projects.Blog

Essential Tools

PDF readers and Organizers

  1. Sioyek - A PDF reader that is designed for reading scientific papers. An overview tutorial of the features and capabilities can be found here.Standalone
  2. Samarta PDF - Lightweight PDF reader. Standalone
  3. 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

Calculations and graphing

  1. Smath Studio - A free software that you can use to solve math numerically, and -somewhat- symbolically in notebook style with units. Standalone
  2. Engineering paper - Shareable interactive engineering calculations and graphs powered by Python.Online
  3. Fxsolver - Huge library of equations and formulas covering all felids of science and engineering.Online
  4. Desmos - Online graphing calculator.Online
  5. NumPad - Online calculator with units and constants.Online

Programming, Note Taking, and Document Processing

  1. VScode - A code editor that is designed for programming. It has a lot of features that make it easier to program.Standalone & Online
    1. Recommended extensions:

      1. Vim - Enables Vim keybindings in VScode.3
      2. 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.
      3. Markdown All in One - All you need to write Markdown (keyboard shortcuts, table of contents, auto preview and more).
      4. 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.
      5. Mermaid - Markdown + Mermaid = diagrams for your documentation.
      6. 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.
      7. LaTeX Workshop - A complete set of tools for working with LaTeX files in Visual Studio Code.
      8. Code Spell Checker - A basic spell checker that works well with camelCase code.
      9. Jupyter - Jupyter notebook support in Visual Studio Code. Supports many languages and kernels. Check out awesome-jupyter.
    2. Best used with:

      1. 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.
      2. MikTeX - MiKTeX is a typesetting system for the Windows operating system. The distribution includes TeX, pdfTeX, XeTeX, LuaTeX, ConTeXt, and a few more.4Backend
      3. 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
  2. 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
  3. Heynote - Scratchpad buffer with blocks, and with many languages support.Great for on-the-fly note taking.Standalone
  4. Lyx - A document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG).4Frontend

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.

Roadmap

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

  1. Mirrors for GenLib

  2. Mirror for SciHub

  3. 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.

  4. 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

  5. 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.