AcademySoftwareFoundation / AcademySoftwareFoundation/OpenShadingLanguage

Meta-issue: osltoy features and fixes

Open
#1,862 9 comments 0 reactions 0 assignees View on GitHub
Dev Days devdays24 enhancement feature request good first issue help wanted
Dominant language
C++
Stars
2.3k
Forks
414
Avg merge
3d 1h
Merged PRs (30d)
10

Description

# Master list of `osltoy` feature requests

`osltoy` is a small example program loosely inspired by [shadertoy](https://www.shadertoy.com/) -- a Qt application that lets you load or type in an OSL shader, which is then used to evaluate a color for each pixel in the display window of the app, and to interactively change the controls. Unlike the real Shadertoy, it's just meant to be a local app, not a web service. But it's a great way to tinker with OSL shaders, but it hasn't gotten a lot of development love lately.

We will use this issue to collect individual suggestions or feature requests for `osltoy`. Please comment/reply on this ticket to request that items be added (or if you're on the TSC or have permissions to edit this description, feel free to do so.

Comment/reply to say "hey, I want to do task X" so that multiple people don't independently attempt the same tasks (if it's something where only one can really be accepted); we don't want anybody's work time to be wasted.

## Good First Issues

These are small tasks ideal for newcomers to the project, suitable for Dev Days. They don't really require knowledge of how OSL itself is implemented under the covers, but some experience making C++ Qt GUI applications may be helpful, and it probably wouldn't hurt if you've fooled around a bit with the real Shadertoy to get inspiration for some things to add.

```[tasklist]
- [x] way to set search path for headers?
- [ ] auto-detect output variable -- doesn't need to be Cout if there's only one
- [ ] editor improvement: can we make the tab stops 4 spaces each?
- [ ] watch a shader file on disk, auto reload/recompile when updated
```

## Bigger projects

These might require more extensive experience, planning complex features, or making big design decisions. Or maybe they will be fast? I'm only guessing.

```[tasklist]
- [ ] allow mouse and keyboard input -- somehow they could be fed into inputs to the shader on the next frame or something? Probably it would help to see how ShaderToy did it, for inspiration.
- [ ] allow "memory" -- can we turn any output into an input for the next frame?
```

Contributor guide

Open the contributing guide

Research direction

This is a meta-issue containing several unchecked osltoy feature ideas, but it names no files, tests, or entry points. Choose one task, inspect the existing osltoy implementation and related Qt GUI behavior, and define completion for that task before starting; comment to claim it and confirm the expected behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.