RenderMan Shading Language
1 program
Added 2025-11-05T08:01:37Z
Model: google/gemini-2.5-proTemp: 0.4
Evidence
Report issue
View issues
Aliases: RSL
Provenance: commit 3e4869ac57 · authored 2025-11-05T09:01:37+01:00 · model google/gemini-2.5-pro
Sources mentioning this language
2 sources · pl_id:
pl/renderman-shading-languageRelated languages
Open Shading Language (0.47)Metal (0.42)Metal Shading Language (0.42)OpenGL Shading Language (0.41)GLSL (0.39)
Real programs from Software Heritage
No SWH evidence indexed yet for this language. (Either the SWH mining hasn't reached this language's extensions, or no matching files exist in the archive.)
Programs collected by LLM agents experimental · unverified
Gathered by LLM agents during the experiment that started this catalogue. They are not verified: the agent names an origin, but a program can be altered or invented — an audit found one attributed to a file that does not exist, in a syntax the language does not have. Prefer the programs archived by Software Heritage above. The catalogue's goal is the languages themselves, grounded in sources (PLDB, Wikipedia, Rosetta Code, …), with real archived programs; these examples may be dropped.
Wood Texture Shader
Provenance: commit 3e4869ac57 · authored 2025-11-05T09:01:37+01:00 · model google/gemini-2.5-pro · Temp 0.4
/*
* wood.sl: a wood texture shader
*
* (c) Copyright 1990, 1995 by Aptech Systems, Inc.
* All Rights Reserved.
*
* This code is based on the original wood shader from "The
* RenderMan Companion" by Steve Upstill. This version of the
* shader has been modified to use the filtered noise function
* and to add a few more controls.
*
* The original shader is (c) Copyright 1988 Pixar.
* All Rights Reserved.
*/
surface
wood(
/* light wood color */
color C1 = color (0.5, 0.2, 0.07);
/* dark wood color */
color C2 = color (0.15, 0.08, 0.03);
/* specular color */
color spec = color (0.5, 0.5, 0.5);
/* ambient intensity */
float Ka = 0.2;
/* diffuse intensity */
float Kd = 0.8;
/* specular intensity */
float Ks = 0.2;
/* specular roughness */
float roughness = 0.1;
/* scale of the texture */
float scale = 1;
/* ring thickness */
float ring_thickness = 10;
/* amount of waviness in the grain */
float wavy = 0.1;
/* amount of noise to add to the texture */
float noise_amp = 0.1;
/* frequency of the noise */
float noise_freq = 2;
)
{
point PP;
float r, r2, in_ring;
float f;
color Ct;
/* transform the point to texture space */
PP = transform("shader", P);
PP *= scale;
/* give the grain a wavy appearance */
PP[0] += wavy * snoise(PP);
/* calculate the radius from the center */
r = sqrt(PP[0]*PP[0] + PP[1]*PP[1]);
/* add some noise to the radius */
r += noise_amp * snoise(PP * noise_freq);
/* determine the ring based on the radius */
r2 = r * ring_thickness;
in_ring = mod(r2, 1);
/* use a smoothstep to make the transition between rings */
f = smoothstep(0.4, 0.6, in_ring);
/* mix the two colors based on the ring pattern */
Ct = mix(C1, C2, f);
/* set the opacity */
Oi = Os;
/* calculate the final color with lighting */
Ci = Oi * Ct * (Ka*ambient() + Kd*diffuse(normalize(N))) +
spec * Ks*specular(normalize(N),-normalize(I),roughness);
}