iY0Yi / ShaderBoy

Simple text editor that lets you write Shadertoy shaders more comfortably, anytime, anywhere.
https://shaderboy.net/
143 stars 5 forks source link
glsl glsl-shaders google-drive javascript shader shadertoy




ShaderBoy is a simple text editor that lets you write Shadertoy shaders more comfortably, anytime, anywhere. I like writing shaders for Shadertoy, or analyzing other people's esoteric shaders, and I created this especially because I wanted to do that on my smartphone. Whether you're traveling by train or plane, staying in the toilet, fishing or camping, you can write a shader anywhere and anytime. Your power to go.

There are PC version and smartphone version. Both allow you to write shaders with the same variable/function name as Shadertoy. On the PC version, you can fine-tune your shaders with a rich debugging GUI. It also has a recording mode so you can easily save your shader as a movie. The smartphone version consists of a minimal GUI element that assumes the use of a physical keyboards, with a small screen as much coding space as possible.

ShaderBoy uses Google Drive to store your shaders. From any device on which you log in with your Google account, you can continue coding the shader that you last edited.

Enjoy ShaderBoy!

This is not an official Shadertoy application.
Bug reports, feature requests, and 🍺 are welcome.
*iOS ver is WIP. There are many bugs yet. (especially Keymaps, CSS)






App

ShaderBoy is a PWA(Progressive Web Apps).
You can install the app from here.

*Howto: Install Progressive Web App (PWA) natively on Windows/macOS via Chrome Browser






Screenshots

















Keymaps

Smartphone Windows Mac
Compile βŒ₯+ENTER(SPACE) βŒ₯+ENTER βŒ₯+ENTER
Play/Pause βŒ₯+UP βŒ₯+UP βŒ₯+UP
Reset time βŒ₯+DOWN βŒ₯+DOWN βŒ₯+DOWN
Move to neighbor buffer βŒ₯+LEFT/RIGHT βŒ₯+LEFT/RIGHT βŒ₯+LEFT/RIGHT
Search ctrl+F ctrl+F ⌘+F
Replace ctrl+H ctrl+H ⌘+H
Resolution ctrl+1-4 ctrl+1-4 ctrl+1-4
Font size ctrl+-/+ ctrl+⇧+βŒ₯+-/+ ⌘+⇧+βŒ₯+-/+
Hide/Show WebGL canvas ctrl+⇧+βŒ₯+V ctrl+⇧+βŒ₯+V ⌘+⇧+βŒ₯+V
Hide/Show Code & All GUIs ctrl+⇧+βŒ₯+H ctrl+⇧+βŒ₯+H ⌘+⇧+βŒ₯+H
Hide/Show Timeline --- ctrl+⇧+βŒ₯+T ⌘+⇧+βŒ₯+T
Hide/Show Knobs GUI --- ctrl+⇧+βŒ₯+D ⌘+⇧+βŒ₯+D
Hide/Show iChannel GUI ctrl+⇧+βŒ₯+A ctrl+⇧+βŒ₯+A ⌘+⇧+βŒ₯+A
Hide/Show Recording GUI --- ctrl+⇧+βŒ₯+R ⌘+⇧+βŒ₯+R
Create a new shader ctrl+⇧+βŒ₯+N ctrl+⇧+βŒ₯+N ctrl+⇧+βŒ₯+N
Fork a shader ctrl+⇧+βŒ₯+F ctrl+⇧+βŒ₯+F ⌘+⇧+βŒ₯+F
Save shader files ctrl+S ctrl +S ⌘+S
Open shader list ctrl+O ctrl+O ⌘+O
Mute/Unmute sound ctrl+M ctrl+M βŒ₯+M
Switch header info(FPS/shader name) ctrl+I ctrl+I βŒ₯+I
*And some of Sublime Text bindings by Codemirror.






Features

Compatibility

Supported Shadertoy Uniforms

GUI/other usefuls

Other

Build Your ShaderBoy

Install dependencies

If you want have your own ShaderBoy,
Clone this repo and install dependencies.

$ npm install

Build

You then set up a local host for development.

$ npm start

or to build,

$ npm run build

Upload

And upload files in "dest" directory to your server.
That's it! Good luck!





Dependencies

ShaderBoy depends on some awesome js libralies.
Codemirror
CCapture.js
keymaster
css_browser_selector
tested with jest




Contact

iY0Yi





Beer

Paypal.me🍺