<commit_before>cameras:
    camera1:
        type: perspective
        focal_length: [[16, 2], [20, 6]] # pairs of [zoom, focal len]
        vanishing_point: [-250, -250] # relative to center of screen, in pixels

lights:
    light1:
        type: directional
        direction: [0, 1, -.5]
        diffuse: .5
        ambient: .2
    light2:
        type: point
        position: [0, 0, 800px]
        origin: ground
        ambient: .5
        diffuse: .3
        specular: .2

styles:
    floor:
        extends: polygons
        material:
            normal:
                texture: imgs/normal-0027.jpg
                mapping: planar
                scale: 0.003
            ambient: 0.8
            diffuse: 0.8
            specular: 0.2

    buildings:
        extends: polygons
        texcoords: true
        material:
            ambient: 0.8
            diffuse: 0.8
            specular: 0.2
        shaders:
            blocks:
                globals: |
                    float box(vec2 _st, vec2 _size){
                        _size = vec2(0.5)-_size*0.5;
                        vec2 uv = smoothstep(_size,_size+vec2(0.0001),_st);
                        uv *= smoothstep(_size,_size+vec2(0.0001),vec2(1.0)-_st);
                        return uv.x*uv.y;
                    }

                    float circle(vec2 _st, float _radius){
                      vec2 pos = vec2(0.5)-_st;
                      _radius *= 0.75;
                      return 1.-smoothstep(_radius-(_radius*0.01),_radius+(_radius*0.01),dot(pos,pos)*3.14);
                    }

                    vec2 tile(vec2 _st, float _zoom){
                      _st *= _zoom;
                      return fract(_st);
                    }

                    vec2 brickTile(vec2 _st, float _zoom){
                        _st *= _zoom;
                        if (fract(_st.y * 0.5) > 0.5){
                            _st.x += 0.5;
                        }
                        return fract(_st);
                    }

                    float getBrightness(in vec3 _rgb){
                        return 0.212655 * _rgb.r + 0.715158 * _rgb.g + 0.072187 * _rgb.b;
                    }

                    float random( in float _x){
                        return fract(sin(_x)*1e4);
                    }
                normal: |

                    vec2 st = fract(v_world_position.xy*0.07);
                    vec2 pos = st-0.5;
                    normal = vec3(pos*2.0,1.0)*(1.0-vec3(box(st,vec2(0.95))));
                    {
                        vec2 st = tile(st,2.);
                        pos = st-0.5;
                        float a = atan(pos.y,pos.x);
                        normal = normalize(normal);
                        normal += vec3(cos(a)*2.0,sin(a)*2.0,0.)*circle(st,0.5);
                        normal *= 1.0-circle(st,0.3);
                        normal.b = 1.0;
                    }
                    

                    if ( dot(v_normal,vec3(0.,0.,1.)) == 0.0 ){
                        float z = v_world_position.z*0.07;
                        pos = st-0.5;
                        if (fract(z * 0.5) > 0.5){
                            normal = v_normal + vec3(pos*2.0,1.0)*(1.0-vec3(box(st,vec2(0.95))));
                        } else {
                            normal = v_normal;
                        }
                        

                        float p = fract(z);
                        float size = 0.92;
                        size = 0.5-size*0.5;

                        normal.z = (smoothstep(size,size+0.0001,p) * smoothstep(size,size+0.0001,1.0-p));
                    }
                color: |
                    float b = random(getBrightness(color.rgb));

                    if (b > 0.8){
                        color.rgb = vec3(0.918,0.196,0.133);
                    } else if(b > 0.6){
                        color.rgb = vec3(0.996,0.835,0.000);
                    } else if(b > 0.4){
                        color.rgb = vec3(0.016,0.341,0.651);
                    } else if(b > 0.2){
                        color.rgb = vec3(0.278,0.341,0.396);
                    } else {
                        color.rgb = vec3(0.400,0.176,0.180);
                    } 


sources:
    osm:
        type: GeoJSONTileSource
        url:  http://vector.mapzen.com/osm/all/{z}/{x}/{y}.json

layers:
    earth:
        data:
            source: osm
            layer: earth
        style:
            name: floor
            order: 0
            color: [0.094,0.573,0.255]
    landuse:
        data:
            source: osm
            layer: landuse
        style:
            name: floor
            order: 1<commit_msg>color correction<commit_after>cameras:
    camera1:
        type: perspective
        focal_length: [[16, 2], [20, 6]] # pairs of [zoom, focal len]
        vanishing_point: [-250, -250] # relative to center of screen, in pixels

lights:
    light1:
        type: directional
        direction: [0, 1, -.5]
        diffuse: .5
        ambient: .2
    light2:
        type: point
        position: [0, 0, 800px]
        origin: ground
        ambient: .5
        diffuse: .3
        specular: .2

styles:
    floor:
        extends: polygons
        material:
            normal:
                texture: imgs/normal-0027.jpg
                mapping: planar
                scale: 0.003
            ambient: 0.8
            diffuse: 0.8
            specular: 0.4

    buildings:
        extends: polygons
        texcoords: true
        material:
            ambient: 0.8
            diffuse: 0.8
            specular: 0.4
        shaders:
            blocks:
                globals: |
                    float box(vec2 _st, vec2 _size){
                        _size = vec2(0.5)-_size*0.5;
                        vec2 uv = smoothstep(_size,_size+vec2(0.0001),_st);
                        uv *= smoothstep(_size,_size+vec2(0.0001),vec2(1.0)-_st);
                        return uv.x*uv.y;
                    }

                    float circle(vec2 _st, float _radius){
                      vec2 pos = vec2(0.5)-_st;
                      _radius *= 0.75;
                      return 1.-smoothstep(_radius-(_radius*0.01),_radius+(_radius*0.01),dot(pos,pos)*3.14);
                    }

                    vec2 tile(vec2 _st, float _zoom){
                      _st *= _zoom;
                      return fract(_st);
                    }

                    vec2 brickTile(vec2 _st, float _zoom){
                        _st *= _zoom;
                        if (fract(_st.y * 0.5) > 0.5){
                            _st.x += 0.5;
                        }
                        return fract(_st);
                    }

                    float getBrightness(in vec3 _rgb){
                        return 0.212655 * _rgb.r + 0.715158 * _rgb.g + 0.072187 * _rgb.b;
                    }

                    float random( in float _x){
                        return fract(sin(_x)*1e4);
                    }
                normal: |

                    vec2 st = fract(v_world_position.xy*0.07);
                    vec2 pos = st-0.5;
                    normal = vec3(pos*2.0,1.0)*(1.0-vec3(box(st,vec2(0.95))));
                    {
                        vec2 st = tile(st,2.);
                        pos = st-0.5;
                        float a = atan(pos.y,pos.x);
                        normal = normalize(normal);
                        normal += vec3(cos(a)*2.0,sin(a)*2.0,0.)*circle(st,0.5);
                        normal *= 1.0-circle(st,0.3);
                        normal.b = 1.0;
                    }
                    

                    if ( dot(v_normal,vec3(0.,0.,1.)) == 0.0 ){
                        float z = v_world_position.z*0.07;
                        pos = st-0.5;
                        if (fract(z * 0.5) > 0.5){
                            normal = v_normal + vec3(pos*2.0,1.0)*(1.0-vec3(box(st,vec2(0.95))));
                        } else {
                            normal = v_normal;
                        }
                        

                        float p = fract(z);
                        float size = 0.92;
                        size = 0.5-size*0.5;

                        normal.z = (smoothstep(size,size+0.0001,p) * smoothstep(size,size+0.0001,1.0-p));
                    }
                color: |
                    float b = random(getBrightness(color.rgb));

                    if (b > 0.8){
                        color.rgb = vec3(0.918,0.196,0.133);
                    } else if(b > 0.6){
                        color.rgb = vec3(0.996,0.835,0.000);
                    } else if(b > 0.4){
                        color.rgb = vec3(0.016,0.341,0.651);
                    } else if(b > 0.2){
                        color.rgb = vec3(0.278,0.341,0.396);
                    } else {
                        color.rgb = vec3(0.400,0.176,0.180);
                    } 

                    color *= clamp(0.7+v_world_position.z*0.005,0.,1.);


sources:
    osm:
        type: GeoJSONTileSource
        url:  http://vector.mapzen.com/osm/all/{z}/{x}/{y}.json

layers:
    earth:
        data:
            source: osm
            layer: earth
        style:
            name: floor
            order: 0
            color: [0.094,0.573,0.255]
    landuse:
        data:
            source: osm
            layer: landuse
        style:
            name: floor
            order: 1
{'fraction_non_alphanumeric': 0.11681453316434305, 'fraction_numerical': 0.06273764258555133, 'mean_word_length': 0.8643433746800552, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '607776', 'n_tokens_mistral': 3158, 'n_tokens_neox': 2727, 'n_words': 530}