Code Monkey home page Code Monkey logo

shadermania's Introduction

ShaderMania

AppStore

MIT license Version Discord Twitter

screenshot

Create, edit, share Metal shaders on macOS and iPadOS

ShaderMania features live coding of Metal fragment shaders with realtime preview and playback. Shaders are displayed as nodes which can be connected as needed.

ShaderMania features a database of public shaders including tutorial shaders with links to explanation videos.

A physical keyboard is recommended for coding shaders.

Features

  • Flexible node system supporting Shaders and Images. Named input slots for shaders can be created inside the shader source code.
  • Connect shader nodes to be able to chain shaders.
  • Optional abstracted parameter definition which supports display of variables as sliders to live change shader values in the user interface.
  • Tutorial shaders can display a button with a link to their video urls.
  • Realtime syntax check and compilation of your shaders with realtime preview.
  • Render to custom resolutions and export your shader output to PNG.
  • Display of syntax errors and warnings.

Database

  • Upload your shaders to the public shader database
  • Browse shaders in the Database and learn / experiment.
  • Add the shader nodes from the database to your project.

How to help

Rating or reviewing ShaderMania in the AppStore is a great help as it improves visibility.

Render-Z

If you like ShaderMania, try out Render-Z, my visual Metal editor.

Get Involved

Join my Discord and get involved in everything ShaderMania.

Acknowledgements

shadermania's People

Contributors

markusmoenig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shadermania's Issues

Parameterizing blur size

Cool app! Can't wait to see where it goes :)

I attempted to parameterize the blur depth in the blur shader you posted to the shared library, however it seems 'variable length arrays are not supported in Metal':

image

I know this kind of thing is possible in general, but I've never implemented it from scratch. Would parameterizing the blur amount require a more substantial refactoring of the blur implementation to avoid the 'no variable length arrays' constraint?

Thanks!

Can't edit texture/shader names after creating them

First off, thanks for making this app—it looks incredibly handy. Trying it out, I noticed something that seems like a UI issue: there doesn’t seem to be a way to edit the name of a texture or shader after creating it. I’ve tried double-clicking the entry in the sidebar as well as selecting it and hitting Return, but nothing happens. This is in the App Store version (1.0), on macOS Big Sur.

Cubemap support

Implement Cubemaps by allowing users to add images and maybe also procedurally

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.