user: Show practical ways to work with Properties in a Blender add-on or script – include code.

assistant: ### Import

Merge Vertices
:   The glTF format requires discontinuous normals, UVs, and other vertex attributes to be stored as separate vertices,
    as required for rendering on typical graphics hardware.
    This option attempts to combine co-located vertices where possible.
    Currently cannot combine verts with different normals.

Shading
:   How normals are computed during import.

Lighting Mode
:   Optional backwards compatibility for non-standard render engines. Applies to lights.
    Standard: Physically-based glTF lighting units (cd, lx, nt).
    Unitless: Non-physical, unitless lighting. Useful when exposure controls are not available
    Raw (Deprecated): Blender lighting strengths with no conversion

#### Texture

Pack Images
:   Pack all images into the blend-file.

Import WebP textures
:   If a texture exists in WebP format, loads the WebP texture instead of the fallback png/jpg one.

Import unused Materials & Textures
:   Import all materials and textures, even if they are not used in the scene.

#### Bones & Skin

Bone Direction
:   Changes the heuristic the importer uses to decide where to place bone tips.
    Note that the Fortune setting may cause inaccuracies in models that use non-uniform scaling.
    Otherwise this is purely aesthetic.
    The default value will not change axis, and is best for re-exporting from Blender.
    This default option will change display mode (adding shape and changing relationship line) to have a better view,
    even if original bones axis are not the most accurate (estheticaly speaking)

Guess Original Bind Pose
:   Determines the pose for bones (and consequently, skinned meshes) in Edit Mode.
    When on, attempts to guess the pose that was used to compute the inverse bind matrices.

Disable Bone Shape
:   Do not display bone shapes in the 3D View.

Bone Shape Scale
:   Scale of the bone shapes in the 3D View.

#### Pipeline

Import Scenes as Collections
:   Import glTF scenes as collections. This is the default.
    For single scene import, all objects are created in active collection
    For multiple scenes import, each scene is imported as a collection. Non default scene are excluded from View Layer.
    If there are some orphan nodes (not in any scenes), an Orphan Collection is created (excluded from View Layer too).
    When off, the glTF scene is imported in the Blender active scene.
    Other glTF scenes are imported as new Blender Scenes.

Select Imported Objects
:   Select created objects after import.

Import Scene Extras
:   Import glTF extras as custom properties, at scene level.

### Export

Format
:   See: [File Format Variations](#file-format-variations).

Keep Original
:   For glTF Separate file format only. Keep original textures files if possible.
    Warning: if you use more than one texture, where PBR standard requires only one,
    only one texture will be used. This can lead to unexpected results

Textures
:   For glTF Separate file format only. Folder to place texture files in. Relative to the gltf-file.

Copyright
:   Legal rights and conditions for the model.

Remember Export Settings
:   Store export settings in the blend-file,
    so they will be recalled next time the file is opened.

#### Include

Selected Objects
:   Export selected objects only.

Visible Objects
:   Export visible objects only.

Renderable Objects
:   Export renderable objects only.

Active Collection
:   Export objects from active collection only.

Include Nested Collections
:   Only when Active Collection is On.
    When On, export recursively objects on nested active collections.

Active Scene
:   Export active scene only.

Custom Properties
:   Export custom properties as glTF extras.

Cameras
:   Export cameras.

Punctual Lights
:   Export directional, point, and spot lights. Uses the `KHR_lights_punctual` glTF extension.

#### Transform

Y Up
:   Export using glTF convention, +Y up.

#### Data - Scene Graph

Geometry Nodes Instances
:   Export Geometry nodes instances. This feature is experimental.

GPU Instances
:   Export using `EXT_mesh_gpu_instancing` extensions.

Flatten Object Hierarchy
:   Useful in case of non-decomposable TRS matrix. Only skined meshes will stay children of armature.

Full Collection Hierarchy
:   Export collections as empty, keeping full hierarchy. If an object is in multiple collections,
    it will be exported it only once, in the first collection it is found.

#### Data - Mesh

Apply Modifiers
:   Export objects using the evaluated mesh, meaning the resulting mesh after all
    [Modifiers](../../modeling/modifiers/index.xhtml) have been calculated.

UVs
:   Export UVs (texture coordinates) with meshes.

Normals
:   Export vertex normals with meshes.

Tangents
:   Export vertex tangents with meshes.

Attributes
:   Export Attributes with meshes, when the name starts with underscore.

Loose Edges
:   Export loose edges as lines, using the material from the first material slot.

Loose Points
:   Export loose points as glTF points, using the material from the first material slot.

Shared Accessor
:   For triangles, use shared accessor for indices. This is more efficient (smaller files when you have lots of
    materials).

#### Data - Mesh - Vertex Color

Use Vertex Color
:   Material:
    :   Export vertex color when used in material node tree as Base Color multiplier.
        This is the default, and the most accurate regarding glTF specification.

    Active:
    :   Export active vertex colors, even if not used in material node tree.
        A fully compliant glTF viewer should display this VC as Base Color multiplier.

    Name:
    :   Export vertex color with the given name.
        A fully compliant glTF viewer should display this VC as Base Color multiplier.

    None:
    :   Do not export vertex color.

Export all vertex colors
:   Export all vertex colors, additional VC will be COLOR_1, COLOR_2, etc.

Export active vertex color when no material
:   Export active vertex color when no material is assigned to the object.

#### Data - Material

Materials
:   Export:
    :   Export full materials, including all textures and shaders from node tree.

    Placeholder:
    :   Export only the material placeholder, without any texture or shader.
        Primitives are not merged, so material slot information is kept.

    Viewport:
    :   Export only the viewport material (Base Color, Roughness, and Metalness).

    No Export:
    :   Does not export materials. Primitives are merged, losing material slot information.

Images
:   Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for
    web applications due to the smaller file size.
    If WebP is chosen, all textures will be saved as WebP, without any png/jpg fallback.
    If None is chosen, materials are exported without textures.

Image Quality
:   When exporting jpeg or WebP files, the quality of the exported file.

Create WebP
:   Creates WebP textures for every textures, in addition to the existing texture.
    For already WebP textures, nothing happen.

WebP fallback
:   For all WebP textures, create a png fallback texture.

Unused images
:   Export images that are not used in any material.

Unused textures
:   Export texture info (sampler, image, texcoord) that are not used in any material.

#### Data - Shape Keys

Export shape keys (morph targets).

Shape Key Normals
:   Export vertex normals with shape keys (morph targets).

Shape Key Tangents
:   Export vertex tangents with shape keys (morph targets).

#### Data - Shape Keys - Optimize

Use Sparse Accessor if better
:   Sparse Accessor will be used if it save space (if the exported file is smaller)

Omitting Sparse Accessor if data is empty
:   If data is empty, omit to export SParce Accessor. Not all viewer managed it correctly, so this option is Off by
    default

#### Data - Armature

Use Rest Position Armature
:   Export Armatures using rest position as joint rest pose. When Off, the current frame pose is used as rest pose.

Export Deformation Bones only
:   Export Deformation bones only, not other bones.
    Animation for deformation bones are baked.

Remove Armature Object
:   Remove Armature Objects if possible. If some armature(s) have multiple root bones, we can’t remove them.

Flatten Bone Hierarchy
:   Useful in case of non-decomposable TRS matrix.

#### Data - Skinning

Export skinning data

Bone influences
:   How many joint verex influences will be exported. Models may appear incorrectly in many viewers with value
    different to 4 or 8.

Include All Bone Influences
:   Export all joint vertex influences. Models may appear incorrectly in many viewers.

#### Data - Lighting

Lighting Mode
:   Optional backwards compatibility for non-standard render engines. Applies to lights.
    Standard: Physically-based glTF lighting units (cd, lx, nt).
    Unitless: Non-physical, unitless lighting. Useful when exposure controls are not available
    Raw (Deprecated): Blender lighting strengths with no conversion

#### Data - Compression

Compress meshes using Google Draco.

Compression Level
:   Higher compression results in slower encoding and decoding.

Quantization Position
:   Higher values result in better compression rates.

Normal
:   Higher values result in better compression rates.

Texture Coordinates
:   Higher values result in better compression rates.

Color
:   Higher values result in better compression rates.

Generic
:   Higher values result in better compression rates.

#### Animation

Animation mode
:   Animation mode used for export (See [Animations](#animations))

#### Animation - Bake & Merge

Bake All Objects Animations
:   Useful when some objects are constrained without being animated themselves.

Merge Animation
:   Merge animation mode. Can be by Action (using slot), by NLA Track Name, or no merge.
    When merging by NLA Track Name, all animation with the same NLA Track name will be merged.
    When merging by Action, all animations with the same action will be merged.
    When no merge, all animations will be exported as separate animations.

#### Animation - Rest & Ranges

Use Current Frame as Object Rest Transformations
:   Export the scene in the current animation frame. When off, frame 0 is used as rest transformation for objects.

Limit to Playback Range
:   Clips animations to selected playback range.

Set all glTF Animation starting at 0
:   Set all glTF Animation starting at 0. Can be useful for looping animation

Negative Frames
:   When some frames are in negative range, slide or crop the animation.

#### Animation - Armature

Export all Armature Actions
:   Export all actions, bound to a single armature.
    Warning: Option does not support exports including multiple armatures.

Reset pose bones between actions
:   Reset pose bones between each action exported.
    This is needed when some bones are not keyed on some animations.

#### Animation - Shape Keys

Shape Keys Animations
:   Export Shape Keys Animation. Need Shape Keys to be exported (See [Data - Shape Keys](#data-shape-keys))

Reset Shape Keys between actions
:   Reset Shape Keys between each action exported.
    This is needed when some shape keys are not keyed on some animations.

#### Animation - Sampling

Apply sampling to all animations. Do not sample animation can lead to wrong animation export.

Sampling Rate
:   How often to evaluate animated values (in frames).

Sampling Interpolation Fallback
:   Interpolation choosen for properties that are not keyed (LINEAR or STEP/CONSTANT)

#### Animation - Optimize

Optimize Animation Size
:   Reduce exported file size by removing duplicate keyframes when all identical.

Force keeping channel for armature / bones
:   if all keyframes are identical in a rig, force keeping the minimal animation.

Force keeping channel for objects
:   if all keyframes are identical for object transformations, force keeping the minimal animation.

Disable viewport for other objects
:   When exporting animations, disable viewport for other objects, for performance reasons, when possible.

#### Animation - Filter

Restrict actions to be exported to the ones matching the filter.