数据集:

Vipitis/Shadertoys

英文

Shadertoys 数据集卡片

数据集概述

Shadertoys 数据集包含从 Shadertoy.com API 收集的超过44k个渲染 passes。一些着色器程序包含多个渲染 passes。要浏览数据集的子集,请查看 ShaderEval 空间。此数据集的更细变体是 Shadertoys-fine

支持的任务和排行榜

文本生成 - 数据集可用于训练生成式语言模型,用于代码补全任务。ShaderEval - 来自 ShaderEval 的 task1 使用从 Shadertoys 派生的数据集来测试自回归语言模型的返回补全。

语言

  • 英语(标题、描述、标签、评论)
  • Shadercode 程序语言,是专门为 Shadertoy.com 设计的 GLSL 的子集

数据集结构

数据实例

数据点包括整个 shadercode,从 API 获取的一些信息以及其他元数据。

{
 'num_passes': 1,
 'has_inputs': False,
 'name': 'Image',
 'type': 'image',
 'code': '<full code>',
 'title': '<title of the shader>',
 'description': '<description of the shader>',
 'tags': ['tag1','tag2','tag3', ... ],
 'license': 'unknown',
 'author': '<username>',
 'source': 'https://shadertoy.com/view/<shaderID>'
}

数据字段

  • 'num_passes' - 父着色器程序的 passes 数量
  • 'has_inputs' - 是否使用了任何输入,如纹理、音频流
  • 'name' - 渲染 pass 的名称,通常为 Image、Buffer A、Common 等
  • 'type' - 渲染 pass 的类型;其中之一 {'buffer', 'common', 'cubemap', 'image', 'sound'}
  • 'code' - 整个渲染 pass 的原始代码(包括注释)
  • 'title' - 着色器的名称
  • 'description' - 着色器的描述
  • 'tags' - 分配给着色器的标签列表(由创建者分配);有超过10,000个唯一标签
  • 'license' - 目前正在开发中
  • 'author' - 着色器作者的用户名
  • 'source' - 着色器的 URL,而不是特定的渲染 pass 的 URL

数据拆分

目前可用(随机顺序):

  • 训练集(85.0%)
  • 测试集(15.0%)

数据集创建

开始从2022年7月20日检索数据

源数据

初始数据收集和标准化

所有数据是通过 Shadertoy.com API 进行收集的,然后在 'renderpass' 中迭代,同时添加了 'info' 中的一些字段。生成这些数据集的代码将很快发布到 GitHub 存储库中。

谁是源语言的生产者?

Shadertoy.com 的贡献者将着色器发布为 'public+API'。

许可信息

默认许可为 CC BY-NC-SA 3.0。然而,一些着色器可能附带不同的许可证。数据集当前不会筛选任何许可证,但会提供许可证标签,如果通过简单的手段可以轻易识别。请自行查看每个着色器程序的第一个评论,以避免侵犯版权用于后续使用。主要许可证要求共享和署名。每个数据字段的归属可以在 'author' 列中找到,但可能不包括代码本身的其他归属或来自分叉着色器的父级。