{
  "name": "Golden Dyson Sphere",
  "dimension": "3d",
  "slot": "action_bar",
  "width": 256,
  "height": 128,
  "textBaseline": 128,
  "placement": {
    "x": 0,
    "y": 0
  },
  "shapes": [],
  "texts": [],
  "heads": [],
  "images": [],
  "bars": [],
  "triggers": [],
  "world": {
    "glsl": "vec3 dsCell(vec3 n) {\n    float best = -2.0;\n    vec3 chosen = vec3(0.0,1.0,0.0);\n    float start=floor((1.0-n.y)*64.0-0.5)-16.0;\n    for (int i=0; i<33; i++) {\n        float f=clamp(start+float(i),0.0,127.0);\n        float y=1.0-2.0*(f+0.5)/128.0;\n        float r=sqrt(1.0-y*y);\n        float a=f*2.39996323;\n        vec3 v=vec3(cos(a)*r,y,sin(a)*r);\n        float s=dot(n,v);\n        if(s>best){best=s;chosen=v;}\n    }\n    return chosen;\n}\nvec4 dsLayer(vec3 p, vec3 rd, float time, vec3 light) {\n    vec3 n=normalize(p);\n    vec3 q=n;\n    q.xz=rpw_rot(time*0.035)*q.xz;\n    vec3 cell=dsCell(q);\n    float edge=2.0;\n    float start=floor((1.0-q.y)*64.0-0.5)-16.0;\n    for(int i=0;i<33;i++){\n        float f=clamp(start+float(i),0.0,127.0);\n        float y=1.0-2.0*(f+0.5)/128.0;\n        float r=sqrt(1.0-y*y);\n        float a=f*2.39996323;\n        vec3 v=vec3(cos(a)*r,y,sin(a)*r);\n        float dif=length(cell-v);\n        if(dif>0.01) edge=min(edge,dot(q,cell-v)/dif);\n    }\n    float phase=dot(cell,vec3(2.7,4.1,1.3));\n    float opening=0.012+0.078*pow(0.5+0.5*sin(time*0.7+phase),1.5);\n    if(edge<opening)return vec4(0.0);\n    float bevel=1.0-smoothstep(opening,opening+0.012,edge);\n    float lam=max(dot(n,normalize(vec3(0.4,0.8,0.3))),0.0);\n    float h=rpw_hash(cell*39.0);\n    vec3 col=mix(vec3(0.052,0.068,0.085),vec3(0.13,0.16,0.19),h)*(0.45+0.8*lam)*light;\n    vec3 halfV=normalize(normalize(vec3(0.4,0.8,0.3))-rd);\n    col+=vec3(0.3,0.36,0.42)*pow(max(dot(n,halfV),0.0),38.0)*light;\n    float groove=1.0-smoothstep(0.001,0.003,abs(edge-opening-0.036));\n    col*=1.0-0.5*groove;\n    col+=vec3(1.0,0.40,0.045)*bevel*1.4;\n    float inset=abs(edge-opening-0.022);\n    col+=vec3(0.24,0.15,0.055)*(1.0-smoothstep(0.001,0.003,inset));\n    col+=vec3(0.11,0.17,0.22)*pow(1.0-abs(dot(n,rd)),3.0);\n    return vec4(col,1.0);\n}\nvec4 object(vec3 ro, vec3 rd, float t0, float t1, float time, vec3 light, inout float depth) {\n    float b=dot(ro,rd);\n    float h=b*b-dot(ro,ro)+0.86*0.86;\n    if(h<0.0){\n        float tc=clamp(-b,t0,t1);\n        vec3 p=ro+rd*tc;\n        float r=length(p);\n        float halo=0.26*exp(-max(r-0.86,0.0)*42.0)*(1.0-smoothstep(0.90,0.95,r));\n        float rays=0.65+0.35*pow(0.5+0.5*sin(atan(p.z,p.x)*31.0+p.y*24.0-time*0.25),2.0);\n        depth=tc;\n        return vec4(vec3(1.5,0.63,0.09),halo*rays);\n    }\n    float nearT=-b-sqrt(h),farT=-b+sqrt(h);\n    vec3 col=vec3(0.0);float alpha=0.0;\n    if(nearT>=t0){\n        vec4 front=dsLayer(ro+rd*nearT,rd,time,light);\n        if(front.a>0.9){depth=nearT;return front;}\n    }\n    float sh=b*b-dot(ro,ro)+0.58*0.58;\n    if(sh>0.0){\n        float ts=-b-sqrt(sh);\n        if(ts>=t0){\n            vec3 p=(ro+rd*ts)/0.58;\n            vec3 q=p*6.0+vec3(0.0,-time*0.13,time*0.08);\n            float f=rpw_noise(q)*0.66+rpw_noise(q*2.8+time*0.12)*0.34;\n            float cells=pow(abs(sin(f*15.0)),3.0);\n            float rim=pow(1.0-abs(dot(p,rd)),2.0);\n            vec3 star=mix(vec3(1.5,0.24,0.008),vec3(3.0,1.75,0.36),smoothstep(0.18,0.8,f));\n            star+=cells*vec3(0.7,0.45,0.12);\n            star*=1.0-0.45*rim;\n            depth=ts;return vec4(star,1.0);\n        }\n    }\n    if(farT>=t0){vec4 back=dsLayer(ro+rd*farT,rd,time,light);col=back.rgb*back.a;alpha=back.a;depth=farT;}\n    float closest=length(ro+rd*clamp(-b,max(t0,nearT),farT));\n    float glow=0.34*exp(-max(closest-0.58,0.0)*15.0);\n    col=col*(1.0-glow)+vec3(1.5,0.58,0.045)*glow;\n    alpha=alpha+(1.0-alpha)*glow;\n    if(alpha<0.95)depth=max(t0,nearT);\n    return vec4(col/max(alpha,0.0001),alpha);\n}",
    "prompt": "a dyson sphere: a blazing star inside a shell of dark hexagonal panels that slowly slide open and shut, golden light pouring through the gaps",
    "size": 12,
    "summary": "A blazing turbulent star shines through a slowly rotating shell of dark hexagonal panels that slide open and shut in staggered waves, edged with molten gold and a faint corona."
  }
}