From f7f085db6259aabec67e527ad0cd8abd6c703cdc Mon Sep 17 00:00:00 2001 From: Miguel Villa Floran Date: Wed, 16 Oct 2024 16:39:56 -0700 Subject: [PATCH] Update README.md --- README.md | 144 ++++++++++++++++++++++++++++++++++++++++++++- assets/img/cpp.svg | 25 ++++++++ 2 files changed, 166 insertions(+), 3 deletions(-) create mode 100644 assets/img/cpp.svg diff --git a/README.md b/README.md index 543ab73..a5c2e37 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,145 @@ -# fuzzy-robot + -A three-dimensional graphics library from scratch written in C++13 and accelerated with CUDA. + + +
+ +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] + +
+ + + C++ Logo + + +
+

~graphics

+
+ + + +A three-dimensional graphics library from scratch written in C++13 and accelerated with CUDA/Apple Metal. + +### Built With + +[![Neovim][C++-shield]][C++-url] +[![CUDA][CUDA-shield]][CUDA-url] +[![Apple][Apple-shield]][Apple-url] +[![GitHub Actions][github-actions-shield]][github-actions-url] + + +## Preview + +

+ Video demonstration +

+ + +## Getting Started + +### Prerequisites + +Before attempting to build this project, make sure you have [Simple DirectMedia Layer (SDL 2)](https://wiki.libsdl.org/SDL2/Installation), [GNU Make](https://www.gnu.org/software/make/), and [CMake](https://cmake.org) installed on your machine. + + +### Installation + +To get a local copy of the project up and running on your machine, follow these simple steps: + +1. Clone the project repository + + ```sh + git clone https://github.com/Kaweees/graphics.git + cd graphics + ``` + +2. Build and execute the project + ```sh + clear && cmake CMakeLists.txt && make && ./target/release/graphics + ``` + +## Usage + +### Convention + +The graphics library uses the following conventions: + +- right-handed coordinate system +- counter-clockwise winding order +- column-major matrices +- row-major vectors + +- **Vectors**: `vec3` for 3D vectors, `vec4` for 4D vectors, and `vec2` for 2D vectors. +- **Matrices**: `mat3` for 3x3 matrices, `mat4` for 4x4 matrices. +- **Quaternions**: `quat` for quaternions. +- **Colors**: `color` for RGB colors. + + +### Keyboard Controls + +To interact with the graphics library, use the following keyboard shortcuts: + +| Command Keybind | Command Description | +| --------------- | ------------------- | +| leader + c | create new window and switch to it | +| leader + # | switch to window # | +| leader + n | switch to next window | +| leader + p | switch to previous window | +| leader + : | swap window with next window | +| leader + ; | swap window with previous window | +| leader + & | kill window and all panes in it | + + +## Project Structure ```sh -clear && cmake CMakeLists.txt && make && ./target/release/graphics +graphics/ +├── .github/ - GitHub Actions CI/CD workflows +├── include/ - project header files +├── src/ - project source files +│ └── main.c - Entry point, main function +├── CMakeLists.txt - CMake build script +├── LICENSE - project license +└── README.md - you are here ``` + +## License + +The source code for my website is distributed under the terms of the GNU General Public License v3.0, as I firmly believe that collaborating on free and open-source software fosters innovations that mutually and equitably beneficial to both collaborators and users alike. See [`LICENSE`](./LICENSE) for details and more information. + + + + +[contributors-shield]: https://img.shields.io/github/contributors/Kaweees/graphics.svg?style=for-the-badge +[contributors-url]: https://github.com/Kaweees/graphics/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/Kaweees/graphics.svg?style=for-the-badge +[forks-url]: https://github.com/Kaweees/graphics/network/members +[stars-shield]: https://img.shields.io/github/stars/Kaweees/graphics.svg?style=for-the-badge +[stars-url]: https://github.com/Kaweees/graphics/stargazers + + + +[C++-shield]: https://img.shields.io/badge/C++-%23008080.svg?style=for-the-badge&logo=c%2B%2B&logoColor=004482&labelColor=222222&color=004482 +[C++-url]: https://isocpp.org/ +[CUDA-shield]: https://img.shields.io/badge/cuda-%23008080.svg?style=for-the-badge&logo=nVIDIA&logoColor=76B900&labelColor=222222&color=76B900 +[CUDA-url]: https://developer.nvidia.com/cuda-zone +[Apple-shield]: https://img.shields.io/badge/metal-%23008080.svg?style=for-the-badge&logo=apple&logoColor=white&labelColor=222222&color=white +[Apple-url]: https://developer.apple.com/metal/ +[github-actions-shield]: https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge&logo=githubactions&logoColor=2671E5&labelColor=222222&color=2671E5 +[github-actions-url]: https://github.com/features/actions diff --git a/assets/img/cpp.svg b/assets/img/cpp.svg new file mode 100644 index 0000000..4c4b964 --- /dev/null +++ b/assets/img/cpp.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + +