<div align="center">
    <img width="30%" src="Assets/app-logo.png">
    <h1>
        Memola
    </h1>
    <div>
        <a href="https://apps.apple.com/app/memola/id6738171174">
            <img height="35px" src="Assets/ios-app-store.svg">
        </a>
        <a href="https://apps.apple.com/app/memola/id6738171174">
            <img height="35px" src="Assets/mac-app-store.svg">
        </a>
    </div>
</div>
<br>

Memola is an open-source note-taking application, fully built using the Metal framework, allowing you to seamlessly jot down ideas and sketch your visions across iOS, iPadOS, and macOS.

<p align="center">
<img width="100%" src="Assets/app-demo.png">
</p>

## Motivation
Metal is a fascinating framework where we can leverage the optimal power of GPUs through compute shaders and rendering shaders to build advanced applications powered by GPUs. This raised multiple questions like "How is the render pipeline constructed?" and "How are renders generated?", which led to an adventurous journey of crafting a 2D render engine. That's how this project, Memola, started to dive into the world of GPU programming.  

## Contributing
**Memola** welcomes all developers to contribute if you have any idea to enhance and open an issue if you encounter any bug.

## Credits
- [BezierKit](https://github.com/hfutrell/BezierKit)
- [FastDraw](https://github.com/collinzrj/FastDraw)
- [hand-drawing-swift-metal](https://github.com/owengombas/hand-drawing-swift-metal)
- [ios_metal_bezier_renderer](https://github.com/eldade/ios_metal_bezier_renderer)
- [MaLiang](https://github.com/Harley-xk/MaLiang)
- [MetalPaint](https://github.com/rydermackay/MetalPaint)
- [MetalScroller](https://github.com/chunkyguy/MetalScroller)
- [Metal2DScrollable](https://github.com/codelynx/Metal2DScrollable)
- [rbush](https://github.com/mourner/rbush)
- [RTree](https://github.com/imbcmdth/RTree)
- [Sketch](https://github.com/daihase/Sketch)
- [THST](https://github.com/tuxalin/THST)

## License
Memola is available under the MIT license. See the [LICENSE](/LICENSE) file for more info.