{
    "id": "village-chicken-9ba715",
    "title": "Village Chicken",
    "class": "animal",
    "triangles": 1190,
    "kit": "medieval-village-kit-ca0b43",
    "free": true,
    "plan": "free",
    "price_usd": 0,
    "price_note": "free: every low poly model is. The /cdn links need no account and no key (an account adds the ready-to-serve zip). The HD edition, where `hd` is not null, comes with Pro",
    "owned": true,
    "page": "https://polyfork.dev/asset/village-chicken-9ba715",
    "thumbnail": "https://polyfork.dev/files/village-chicken-9ba715/renders/hero.png",
    "preview_glb": "https://polyfork.dev/cdn/village-chicken-9ba715-preview.glb",
    "hd": null,
    "preview_triangles": 1190,
    "preview_fidelity": 1,
    "preview_rigged": true,
    "preview_rig": "skinned",
    "preview_note": "The SKELETON comes with it: this preview carries its skin and its bones, so a clip plays on it as delivered; its normals are stripped for flat shading. This model is free, so build with `download.glb`: the authored file, normals and node names as built.",
    "has_rig": true,
    "remixable": true,
    "has_night": false,
    "has_decals": false,
    "has_ik": true,
    "ik_type": "legs",
    "has_skeleton": false,
    "size_m": {
        "x": 0.14,
        "y": 0.35,
        "z": 0.39
    },
    "origin_y": 0,
    "mass_kg": 2.5,
    "download": {
        "glb": "https://polyfork.dev/cdn/village-chicken-9ba715.glb",
        "mjs": "https://polyfork.dev/cdn/village-chicken-9ba715.mjs",
        "auth": "none"
    },
    "export_formats": {
        "fbx": {
            "url": "https://polyfork.dev/dl/village-chicken-9ba715.fbx",
            "for": "Unity, Unreal, Maya, 3ds Max",
            "available": true
        },
        "usdz": {
            "url": "https://polyfork.dev/dl/village-chicken-9ba715.usdz",
            "for": "iOS AR Quick Look, Omniverse; with UsdPhysics collision and mass",
            "available": true
        },
        "usda": {
            "url": "https://polyfork.dev/dl/village-chicken-9ba715.usda",
            "for": "Isaac Sim, Omniverse, Blender, usdview; with UsdPhysics collision and mass",
            "available": true
        },
        "obj": {
            "url": "https://polyfork.dev/dl/village-chicken-9ba715.obj",
            "for": "universal, geometry only, no pivots",
            "available": true,
            "also_fetch": "https://polyfork.dev/dl/village-chicken-9ba715.mtl",
            "also_fetch_note": "save it beside the .obj as village-chicken-9ba715.mtl: the model names that exact file and imports white without it"
        }
    },
    "export_note": "vertex colours become NAMED MATERIALS on export, named after this asset's own colour knobs; a plain format conversion would arrive white, because only three.js reads our COLOR_0. Built on first request (about a second), cached after. This model is free: these download with no account and no key (only its .mjs source asks for a free account).",
    "params_url": "https://polyfork.dev/cdn/village-chicken-9ba715-params.json",
    "real_scale": {
        "at_real_size": true,
        "real_m": [
            0.4,
            0.6
        ],
        "real_dimension": "length",
        "as_built_m": 0.39,
        "scale_to_real": 1,
        "note": "built at real size: its largest dimension, 0.39 m, is inside the typical real 0.4-0.6 m (an estimate)."
    },
    "physics": {
        "mass_kg": 2.5,
        "mass_source": "estimated",
        "material": "flesh",
        "body": "dynamic",
        "dimensions_m": {
            "x": 0.14,
            "y": 0.35,
            "z": 0.389
        },
        "up_axis": "Y",
        "meters_per_unit": 1,
        "volume_m3": 0.004571,
        "collision": {
            "approximation": "convexDecomposition",
            "parts": 28,
            "colliders_url": "https://polyfork.dev/cdn/village-chicken-9ba715-colliders.json"
        },
        "note": "For the default knob settings; a size knob changes all of it. dimensions_m and the colliders are measured from the model; mass_kg and material are an estimate of what the real object weighs. body \"static\" means fixed in place (give it a collider, no rigid body); \"dynamic\" means it moves. collision.approximation uses UsdPhysics terms: \"convexHull\" = one hull is a good fit, \"convexDecomposition\" = use the per-part hulls in colliders_url (the one hull would fill a gap, like the space under a table). Model space, metres, Y up, origin as the model ships."
    },
    "simready_metadata": {
        "simready_metadata_mass": 2.5,
        "simready_metadata_rigid_body_count": 1,
        "usd_dimensions": [
            0.14,
            0.389,
            0.35
        ],
        "usd_up_axis": "Z",
        "usd_meters_per_unit": 1,
        "simready_metadata_validation__profile": null
    },
    "materials": 1,
    "draw_calls": 1,
    "description": "Stylized low-poly village chicken about 0.35m tall, flat faceted body wedge with a boxy head, faceted comb and wattle and a fanned card tail, rigged and posed; carries a posture knob from standing through pecking at the ground to roosting.",
    "palette": [
        {
            "hex": "#bdaa93",
            "share": 0.255
        },
        {
            "hex": "#9f7b59",
            "share": 0.213
        },
        {
            "hex": "#dbcfb2",
            "share": 0.158
        },
        {
            "hex": "#a55c4f",
            "share": 0.104
        },
        {
            "hex": "#684d38",
            "share": 0.097
        },
        {
            "hex": "#473427",
            "share": 0.084
        }
    ],
    "style": "low-poly, flat-shaded vertex colors, no textures, single shared material, so any set of these merges to one draw call; shares palette and scale with its kit",
    "origin": "ground level (minY = 0): the model sits on y=0 as-is",
    "rigged_parts": {
        "Head": {
            "axis": "y",
            "range": [
                0,
                42
            ]
        },
        "Neck": {
            "axis": "x",
            "range": [
                0,
                46
            ]
        },
        "Tail": {
            "axis": "x",
            "range": [
                0,
                34
            ]
        },
        "LeftWing": {
            "axis": "y",
            "range": [
                0,
                -62
            ]
        },
        "RightWing": {
            "axis": "y",
            "range": [
                0,
                62
            ]
        },
        "LeftUpLeg": {
            "axis": "x",
            "range": [
                0,
                -34
            ]
        },
        "RightUpLeg": {
            "axis": "x",
            "range": [
                0,
                -34
            ]
        },
        "LeftLeg": {
            "axis": "x",
            "range": [
                0,
                -50
            ]
        },
        "RightLeg": {
            "axis": "x",
            "range": [
                0,
                -50
            ]
        }
    },
    "detachable_parts": [],
    "animation": "rigged parts are named groups with the pivot at the hinge/axle: obj.getObjectByName(part) then rotation[axis] (rotate, degrees) or position[axis] (slide, meters). 0 is the pose the model is built in, which is not always shut: `range` is all the travel the part has from there, and outside it the part passes through the body. Whether the range opens or closes is in that knob's describe in params_url",
    "gait": {
        "kind": "2-link",
        "step": 0.103,
        "duty": 0.6,
        "clearance": 0.011,
        "crouch": 0,
        "fitted": true,
        "legs": [
            {
                "id": "Left",
                "hip": "LeftUpLeg",
                "knee": "LeftLeg",
                "axis": "x",
                "mount": null,
                "thigh": 0.082,
                "shin": 0.105,
                "foot": [
                    0.006,
                    -0.071,
                    0.077
                ],
                "stance": [
                    0.036,
                    0,
                    0.052
                ],
                "phase": 0.5
            },
            {
                "id": "Right",
                "hip": "RightUpLeg",
                "knee": "RightLeg",
                "axis": "x",
                "mount": null,
                "thigh": 0.082,
                "shin": 0.105,
                "foot": [
                    -0.006,
                    -0.071,
                    0.077
                ],
                "stance": [
                    -0.036,
                    0,
                    0.052
                ],
                "phase": 0
            }
        ],
        "axes": {
            "hip": "x",
            "knee": "x",
            "mount": "y"
        },
        "units": "metres, radians, phase 0..1",
        "runtime": "https://polyfork.dev/cdn/walk.mjs",
        "how": "phase from distance travelled, not from time: foot planted for `duty` of each `step` metres, feet ordered by `phase`. three.js users import https://polyfork.dev/cdn/walk.mjs and call gait.poseAt(distance)"
    },
    "published_at": "2026-08-10 00:01:40",
    "renders": [
        "https://polyfork.dev/files/village-chicken-9ba715/renders/back.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/close.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/compare.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/detail.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/front.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/hero-crop.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/hero.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/left.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/low-back.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/low.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-Head.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-LeftLeg.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-LeftUpLeg.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-LeftWing.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-Neck.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-RightLeg.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-RightUpLeg.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-RightWing.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/pose-Tail.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/proofs.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/right.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/top.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/tpose.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/under.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-bodyFacets-chunky.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-bodyFacets-smooth.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-colorway-black-cockerel.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-colorway-slate-grey.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-colorway-white-leghorn.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-combSize-0.45.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-combSize-1.7.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-posture-pecking.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-posture-roosting.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-tailFeathers-11.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/variant-tailFeathers-5.png",
        "https://polyfork.dev/files/village-chicken-9ba715/renders/views.png"
    ],
    "license": "Mesh files (GLB, FBX, USD, OBJ): CC BY 4.0 with the line in `credit`, or the Polyfork licence with no credit and no redistribution, your choice. The .mjs source and the HD edition: Polyfork licence only, commercial use, no attribution, no redistribution. https://polyfork.dev/licensing",
    "credit": "Village Chicken by Polyfork (https://polyfork.dev/asset/village-chicken-9ba715), CC BY 4.0",
    "access": {
        "as": "anonymous",
        "remix_bakes_per_hour": 40,
        "remix_bakes_left_this_hour": 40,
        "remix_note": "The budget is on generating NEW geometry. Variations anyone has already baked are served to everybody and never counted, so re-fetching a variant you or anyone else has made costs nothing.",
        "remix_bakes_per_month": 100,
        "remix_bakes_left_this_month": 100,
        "remix_allowance_resets": "2026-12-01",
        "remix_allowance_note": "Anonymous callers are counted per IP address, so other sessions from the same address share this. A free account raises it to 300 a WEEK on its own budget, and costs an email address.",
        "a_free_account_adds": {
            "how": "Authorization: Bearer <key>, created at https://polyfork.dev/account. Costs an email address.",
            "remix_bakes_per_hour": 100,
            "remix_bakes_per_week": 300,
            "downloads": "every low poly model's .mjs program and a ready-to-serve zip from /dl, and any kit as one zip (/dl/kit-<id>.zip). The .glb, .fbx, .usdz, .usda and .obj need no key"
        },
        "pro_adds": {
            "url": "https://polyfork.dev/pricing",
            "usd_per_year": 149,
            "hd_editions": "the HD edition of a model: the same program built finer, high poly with PBR materials generated in code, every knob still working. 1,694 models have one. Free accounts get its public preview (/cdn/<id>-hd-preview.glb) only",
            "cdn": "a per-account /c/<token>/ path for the HD files you can hotlink from a shipped build; it keeps up when an asset is rebuilt, and the token is not the API key",
            "remix_bakes_per_hour": 900,
            "remix_bakes_per_week": "uncapped: a free account gets a weekly allowance, Pro does not"
        }
    }
}
