Skip to content

Commit

Permalink
Nicer sections
Browse files Browse the repository at this point in the history
  • Loading branch information
thedocruby authored Nov 4, 2023
1 parent 9940b3b commit a2d6fda
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,32 @@

**Gravy** is a shader programming framework built on the union of the GPU and the [Rust Programming Language](https://www.rust-lang.org/). Gravy brings amazing features to shader development, such as **custom data structures** and even **dependency/library support**, to name a few. With Gravy, you can build off of the work of other shader devs without the need to copy-paste code from a blog, or fork someone else's code. This is the future of the shaderdev.

## What is Gravy?

**Gravy** sits in a niche with the likes of [**Shadertoy**](https://www.shadertoy.com/) and Unity's [**ShaderGraph**](https://unity.com/features/shader-graph) but stands apart in some key ways:

- **Gravy is a library.** You can build other applications on top of `gravylib` like building a game on a game engine, or like building a web browser on `curl`. The possibilities are endless
- **Gravy is a development environment.** Like Shadertoy, Gravy gives you the power to build amazing and beautiful shader programs, without having to worry about asset loading, windowing, i/o, graphics APIs, etc. You can focus on building your masterpiece, and leave the dirty work to us.
- **Gravy is a node graph.** Like ShaderGraph, `gravylib` allows you to build your shader program quickly and intuitively with a simple node-based API. Eventually, the Gravy IDE will even have a built-in visual node editor!
- **Gravy is Rusty.** Featuring a core built on Embark's [`rust-gpu`](https://github.com/EmbarkStudios/rust-gpu), `gravylib` lets you leverage the power of the beautiful [Rust Programming Language](https://www.rust-lang.org/), to make more complex and powerful shaders than ever possible before, and all without the need to write everything by hand.


#### *For the nerds:*

*More technically, `gravylib` is an attempt to build a modern programming framework for GPU-first development. It builds on [`rust-gpu`](https://github.com/EmbarkStudios/rust-gpu) as a backend to convert Rust syntax into a GPU program, and then makes use of [`wgpu`](https://github.com/gfx-rs/wgpu) and [`winit`](https://github.com/rust-windowing/winit) to run the program with cross-platform support. Gravy is usable as a standalone Rust library crate (`gravylib`), but the goal is to build an IDE-like experience on top of `gravylib` to make GPU-first development simple and accessible for all developers.*

#### NOTE
> `## Why Gravy? (TODO)`
> `## Where do I start? (TODO, merge with below)`
### NOTE:
This project is still a **Work In Progress**, so it's not recommended to use it in it's current state.
**_However_**, if you would like to try it out, head over to [`example.rs`](./examples/shaders/src/example.rs) to find a tutorial of sorts. Pull requests are discouraged until the initial alpha release.

To learn more about the project, you can join the [**Discord**](https://discord.gg/7cBw5KHe6q).

### Alpha release checklist (SUBJECT TO CHANGE, NO ETA)
## Alpha release checklist (v0.1.0)
**(SUBJECT TO CHANGE, NO ETA)**

- [x] Eliminate custom constants system; use `gravylib_helpers::Constants` instead
- [x] Implement `helpers` as a module expansion of `gravylib`
Expand Down

0 comments on commit a2d6fda

Please sign in to comment.