From 8904902fa9ad5b957ace92fa1b34a640ff8ae0d0 Mon Sep 17 00:00:00 2001 From: Chu-Rong Chen <58879171+tom1484@users.noreply.github.com> Date: Tue, 6 Feb 2024 22:44:24 +0800 Subject: [PATCH] [EDITOR & SERVER] Change animation data for new structure (#528) * add dancer layer to LED map * support new led map structure * attach led effects to models and allow model used by multiple dancers * EDITOR-#512 [BLENDER] animation data update (#513) * enabled LED keyframe loading, bugs fixed * update animation data when applying changes to position map and control map * bug fixes * clear viewport before importing models, fetch uncompressed glb files instead of draco.glb files * fixed type init in load * display fade in timeline as ld_control_frame keyframes * added models to asset as collections to enable lazy import * add rev keyframe * separate init_control_map from load * change alpha display, minor fixes * enabled lazy loading, revision management (untested) * fixed iteration bug * add ld_model_name bpy prop * EDITOR-#512 [BLENDER] animation data update (#513) * enabled LED keyframe loading, bugs fixed * update animation data when applying changes to position map and control map * bug fixes * clear viewport before importing models, fetch uncompressed glb files instead of draco.glb files * fixed type init in load * display fade in timeline as ld_control_frame keyframes * added models to asset as collections to enable lazy import * add rev keyframe * separate init_control_map from load * change alpha display, minor fixes * enabled lazy loading, revision management (untested) * fixed iteration bug * add ld_model_name bpy prop * improve code and adjust model structure * improve load and anim data --------- Co-authored-by: Joseph Tseng <106340233+Chalkman071@users.noreply.github.com> --- editor-blender/api/control_agent.py | 2 +- editor-blender/api/pos_agent.py | 2 +- .../property/animation_data/__init__.py | 12 + .../property/animation_data/control.py | 612 ++ .../property/animation_data/position.py | 277 + .../actions/property/animation_data/utils.py | 46 + .../core/actions/property/lights.py | 20 +- .../core/actions/property/revision.py | 70 + .../core/actions/state/color_map.py | 8 +- .../core/actions/state/control_editor.py | 5 +- .../core/actions/state/control_map.py | 12 +- .../core/actions/state/current_status.py | 3 - editor-blender/core/actions/state/editor.py | 4 +- .../core/actions/state/fake_pos_map.py | 529 -- .../core/actions/state/initialize.py | 29 +- editor-blender/core/actions/state/load.py | 532 +- editor-blender/core/actions/state/pos_map.py | 10 +- editor-blender/core/models/__init__.py | 4 +- editor-blender/core/utils/convert.py | 26 +- editor-blender/graphqls/mutations.py | 4 +- editor-blender/graphqls/queries.py | 4 +- editor-blender/graphqls/subscriptions.py | 4 +- editor-blender/properties/__init__.py | 4 +- editor-blender/properties/lights.py | 8 + editor-blender/properties/revision.py | 36 + editor-blender/properties/types.py | 10 + files/asset/models/0_agent.draco.glb | Bin 254860 -> 254224 bytes files/asset/models/0_agent.glb | Bin 1281684 -> 1280964 bytes files/asset/models/1_hank.draco.glb | Bin 254972 -> 254224 bytes files/asset/models/1_hank.glb | Bin 1281712 -> 1280960 bytes utils/generateInitialExport.js | 14 +- utils/jsons/exportDataEmpty.json | 5177 +---------------- 32 files changed, 1460 insertions(+), 6004 deletions(-) create mode 100644 editor-blender/core/actions/property/animation_data/__init__.py create mode 100644 editor-blender/core/actions/property/animation_data/control.py create mode 100644 editor-blender/core/actions/property/animation_data/position.py create mode 100644 editor-blender/core/actions/property/animation_data/utils.py create mode 100644 editor-blender/core/actions/property/revision.py delete mode 100644 editor-blender/core/actions/state/fake_pos_map.py create mode 100644 editor-blender/properties/revision.py diff --git a/editor-blender/api/control_agent.py b/editor-blender/api/control_agent.py index dfc374ca5..276702900 100644 --- a/editor-blender/api/control_agent.py +++ b/editor-blender/api/control_agent.py @@ -129,7 +129,7 @@ async def save_frame( EDIT_CONTROL_FRAME_TIME, { "input": MutEditControlFrameTimeInput( - frameID=id, start=start + frameId=id, start=start ) }, ) diff --git a/editor-blender/api/pos_agent.py b/editor-blender/api/pos_agent.py index 617a2cd84..694dafe17 100644 --- a/editor-blender/api/pos_agent.py +++ b/editor-blender/api/pos_agent.py @@ -125,7 +125,7 @@ async def save_frame( EDIT_POS_FRAME_TIME, { "input": MutEditPositionFrameTimeInput( - frameID=id, start=start + frameId=id, start=start ) }, ) diff --git a/editor-blender/core/actions/property/animation_data/__init__.py b/editor-blender/core/actions/property/animation_data/__init__.py new file mode 100644 index 000000000..91e1c0a00 --- /dev/null +++ b/editor-blender/core/actions/property/animation_data/__init__.py @@ -0,0 +1,12 @@ +from .control import ( + add_single_ctrl_keyframe, + delete_single_ctrl_keyframe, + edit_single_ctrl_keyframe, + set_ctrl_keyframes_from_state, +) +from .position import ( + add_single_pos_keyframe, + delete_single_pos_keyframe, + edit_single_pos_keyframe, + set_pos_keyframes_from_state, +) diff --git a/editor-blender/core/actions/property/animation_data/control.py b/editor-blender/core/actions/property/animation_data/control.py new file mode 100644 index 000000000..707c86a1b --- /dev/null +++ b/editor-blender/core/actions/property/animation_data/control.py @@ -0,0 +1,612 @@ +from typing import Dict, List, Optional, Tuple, cast + +import bpy + +from .....properties.types import RevisionPropertyItemType, RevisionPropertyType +from ....models import ControlMapElement, DancerName, LEDData, MapID, PartName, PartType +from ....states import state +from ....utils.convert import rgba_to_float +from .utils import ensure_action, ensure_curve, get_keyframe_points + +""" +setups & update colormap(===setups) +""" + + +def set_ctrl_keyframes_from_state(effect_only: bool = False): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + ctrl_map = state.control_map + ctrl_frame_number = len(ctrl_map) + + color_map = state.color_map + led_effect_table = state.led_effect_id_table + + fade_seq: List[Tuple[int, bool]] = [(0, False)] * ctrl_frame_number + + prev_effect_ids: Dict[DancerName, Dict[PartName, List[int]]] = {} + + sorted_ctrl_map = sorted(ctrl_map.items(), key=lambda item: item[1].start) + + for i, (id, ctrl_map_element) in enumerate(sorted_ctrl_map): + frame_start = ctrl_map_element.start + ctrl_status = ctrl_map_element.status + + fade = ctrl_map_element.fade + fade_seq[i] = frame_start, fade + + for dancer_name, ctrl in ctrl_status.items(): + dancer_index = state.dancer_part_index_map[dancer_name].index + + for part_name, part_data in ctrl.items(): + part_obj_name = f"{dancer_index}_{part_name}" + + prev_effect_id = prev_effect_ids.setdefault(dancer_name, {}).setdefault( + part_name, [-1] + ) + + if isinstance(part_data, LEDData): + part_parent = data_objects[part_obj_name] + part_alpha = part_data.alpha + + if part_data.effect_id > 0: + part_effect = led_effect_table[part_data.effect_id].effect + led_rgb_floats = [ + rgba_to_float(color_map[led_data.color_id].rgb, part_alpha) + for led_data in part_effect + ] + + prev_effect_id[0] = part_data.effect_id + + elif prev_effect_id[0] > 0: + prev_effect = led_effect_table[prev_effect_id[0]].effect + led_rgb_floats = [ + rgba_to_float(color_map[led_data.color_id].rgb, part_alpha) + for led_data in prev_effect + ] + + else: + led_rgb_floats = [(0, 0, 0)] * len(part_parent.children) + + for led_obj in part_parent.children: + position: int = getattr(led_obj, "ld_led_pos") + led_rgb_float = led_rgb_floats[position] + + action = ensure_action( + led_obj, f"{part_obj_name}Action.{position:03}" + ) + curves = action.fcurves + + for d in range(3): + curve = ensure_curve( + action, + "color", + index=d, + keyframe_points=ctrl_frame_number, + clear=i == 0, + ) + + _, kpoints_list = get_keyframe_points(curve) + point = kpoints_list[i] + + point.co = frame_start, led_rgb_float[d] + point.interpolation = "LINEAR" if fade else "CONSTANT" + + else: + if effect_only: + continue + + part_obj = data_objects[part_obj_name] + + part_rgb = color_map[part_data.color_id].rgb + fiber_rgb_float = rgba_to_float(part_rgb, part_data.alpha) + + action = ensure_action(part_obj, f"{part_obj_name}Action") + curves = action.fcurves + + for d in range(3): + curve = ensure_curve( + action, + "color", + index=d, + keyframe_points=ctrl_frame_number, + clear=i == 0, + ) + + _, kpoints_list = get_keyframe_points(curve) + point = kpoints_list[i] + + point.co = frame_start, fiber_rgb_float[d] + point.interpolation = "LINEAR" if fade else "CONSTANT" + + # insert fake frame + scene = bpy.context.scene + action = ensure_action(scene, "SceneAction") + + curve = ensure_curve( + action, "ld_control_frame", keyframe_points=ctrl_frame_number, clear=i == 0 + ) + _, kpoints_list = get_keyframe_points(curve) + + point = kpoints_list[i] + point.co = frame_start, frame_start + point.interpolation = "CONSTANT" + + # set revision + rev = ctrl_map_element.rev + + # curve = ensure_curve( + # action, "ld_control__meta", keyframe_points=ctrl_frame_number, clear=i == 0 + # ) + # _, kpoints_list = get_keyframe_points(curve) + # + # point = kpoints_list[i] + # point.co = frame_start, rev.meta + # point.interpolation = "CONSTANT" + # + # curve = ensure_curve( + # action, "ld_control_data", keyframe_points=ctrl_frame_number, clear=i == 0 + # ) + # _, kpoints_list = get_keyframe_points(curve) + # + # point = kpoints_list[i] + # point.co = frame_start, rev.data + # point.interpolation = "CONSTANT" + + ctrl_rev_item: RevisionPropertyItemType = getattr( + bpy.context.scene, "ld_ctrl_rev" + ).add() + + ctrl_rev_item.data = rev.data if rev else -1 + ctrl_rev_item.meta = rev.meta if rev else -1 + + ctrl_rev_item.frame_id = id + ctrl_rev_item.frame_start = frame_start + + curves = bpy.context.scene.animation_data.action.fcurves + curve = curves.find("ld_control_frame") + # curve.keyframe_points.sort() + + fade_seq.sort(key=lambda item: item[0]) + _, kpoints_list = get_keyframe_points(curve) + + for frame_start, fade in fade_seq: + if fade: + point_index = next( + index + for index, point in enumerate(kpoints_list) + if point.co[0] == frame_start + ) + + if point_index == ctrl_frame_number - 1: + continue + + point = kpoints_list[point_index] + next_point = kpoints_list[point_index + 1] + + next_point.co = (next_point.co[0], point.co[1]) + + +""" +update control keyframes +""" + + +def add_single_ctrl_keyframe(id: MapID, ctrl_element: ControlMapElement): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + color_map = state.color_map + led_effect_table = state.led_effect_id_table + + ctrl_status = ctrl_element.status + frame_start = ctrl_element.start + fade = ctrl_element.fade + + inv_sorted_ctrl_map = sorted( + state.control_map.items(), key=lambda item: -item[1].start + ) + + for dancer_name, ctrl in ctrl_status.items(): + dancer_index = state.dancer_part_index_map[dancer_name].index + + for part_name, part_data in ctrl.items(): + part_obj_name = f"{dancer_index}_{part_name}" + + if isinstance(part_data, LEDData): + part_parent = data_objects[part_obj_name] + + if part_data.effect_id > 0: + part_effect = led_effect_table[part_data.effect_id].effect + led_rgb_floats = [ + rgba_to_float(color_map[led_data.color_id].rgb, part_data.alpha) + for led_data in part_effect + ] + + else: + try: + prev_effect_frame = next( + frame + for _, frame in inv_sorted_ctrl_map + if frame.start < frame_start + and cast( + LEDData, frame.status[dancer_name][part_name] + ).effect_id + > 0 + ) + prev_effect_id = cast( + LEDData, prev_effect_frame.status[dancer_name][part_name] + ).effect_id + + prev_effect = led_effect_table[prev_effect_id].effect + led_rgb_floats = [ + rgba_to_float( + color_map[led_data.color_id].rgb, part_data.alpha + ) + for led_data in prev_effect + ] + + except StopIteration: + led_rgb_floats = [(0, 0, 0)] * len(part_parent.children) + + for led_obj in part_parent.children: + position: int = getattr(led_obj, "ld_led_pos") + led_rgb_float = led_rgb_floats[position] + + curves = led_obj.animation_data.action.fcurves + for d in range(3): + point = curves.find("color", index=d).keyframe_points.insert( + frame_start, led_rgb_float[d] + ) + point.interpolation = "LINEAR" if fade else "CONSTANT" + + else: + part_obj = data_objects[part_obj_name] + part_rgb = color_map[part_data.color_id].rgb + part_rgba = rgba_to_float(part_rgb, part_data.alpha) + + action = ensure_action(part_obj, f"{part_obj_name}Action") + curves = action.fcurves + + for d in range(3): + point = curves.find("color", index=d).keyframe_points.insert( + frame_start, part_rgba[d] + ) + point.interpolation = "LINEAR" if fade else "CONSTANT" + + # insert fake frame + scene = bpy.context.scene + + curves = scene.animation_data.action.fcurves + curve = curves.find("ld_control_frame") + + _, kpoints_list = get_keyframe_points(curve) + point = curve.keyframe_points.insert(frame_start, frame_start) + + # update new ld_control_frame + try: + new_next_point = next(p for p in kpoints_list if p.co[0] > frame_start) + new_next_fade_points = [ + point + for point in kpoints_list + if point.co[0] > frame_start and point.co[1] == new_next_point.co[1] + ] + + if new_next_point.co[0] != new_next_point.co[1]: # new co's previous point fade + point.co = frame_start, new_next_point.co[1] + else: + point.co = frame_start, frame_start + + if fade: # propagate fade to next points + for new_p in new_next_fade_points: + new_p.co = new_p.co[0], point.co[1] + else: # reset next point to frame_start + for new_p in new_next_fade_points: + new_p.co = new_p.co[0], new_next_point.co[0] + + except StopIteration: + pass + + point.interpolation = "CONSTANT" + curve.keyframe_points.sort() + + # insert rev frame (meta & data) + rev = ctrl_element.rev + + # curve = curves.find("ld_ctrl_meta") + # point = curve.keyframe_points.insert(frame_start, (rev.meta if rev else -1)) + # point.interpolation = "CONSTANT" + # + # curve = curves.find("ld_ctrl_data") + # point = curve.keyframe_points.insert(frame_start, (rev.data if rev else -1)) + # point.interpolation = "CONSTANT" + + ctrl_rev: RevisionPropertyItemType = getattr(bpy.context.scene, "ld_ctrl_rev").add() + + ctrl_rev.data = rev.data if rev else -1 + ctrl_rev.meta = rev.meta if rev else -1 + + ctrl_rev.frame_id = id + ctrl_rev.frame_start = frame_start + + +def edit_single_ctrl_keyframe( + ctrl_id: MapID, ctrl_element: ControlMapElement, only_meta: bool = False +): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + color_map = state.color_map + led_effect_table = state.led_effect_id_table + + old_ctrl_map = state.control_map # control_map before update + old_frame_start = old_ctrl_map[ctrl_id].start + + new_frame_start = ctrl_element.start + new_ctrl_status = ctrl_element.status + new_fade = ctrl_element.fade + + old_inv_sorted_ctrl_map = sorted( + state.control_map.items(), key=lambda item: -item[1].start + ) + + for dancer_name, ctrl in new_ctrl_status.items(): + dancer_index = state.dancer_part_index_map[dancer_name].index + + for part_name, part_data in ctrl.items(): + part_obj_name = f"{dancer_index}_{part_name}" + part_alpha = part_data.alpha + + if isinstance(part_data, LEDData): + part_parent = data_objects[part_obj_name] + + if part_data.effect_id > 0: + part_effect = led_effect_table[part_data.effect_id].effect + led_rgb_floats = [ + rgba_to_float(color_map[led_data.color_id].rgb, part_alpha) + for led_data in part_effect + ] + + else: + try: + prev_effect_frame = next( + frame + for _, frame in old_inv_sorted_ctrl_map + if frame.start < new_frame_start + and cast( + LEDData, frame.status[dancer_name][part_name] + ).effect_id + > 0 + ) + prev_effect_id = cast( + LEDData, prev_effect_frame.status[dancer_name][part_name] + ).effect_id + + prev_effect = led_effect_table[prev_effect_id].effect + led_rgb_floats = [ + rgba_to_float(color_map[led_data.color_id].rgb, part_alpha) + for led_data in prev_effect + ] + + except StopIteration: + led_rgb_floats = [(0, 0, 0)] * len(part_parent.children) + + for led_obj in part_parent.children: + position: int = getattr(led_obj, "ld_led_pos") + led_rgb_float = led_rgb_floats[position] + + curves = led_obj.animation_data.action.fcurves + for d in range(3): + curve = curves.find("color", index=d) + kpoints, kpoints_list = get_keyframe_points(curve) + point = next( + point + for point in kpoints_list + if point.co[0] == old_frame_start + ) + + point.co = new_frame_start, led_rgb_float[d] + point.interpolation = "LINEAR" if new_fade else "CONSTANT" + + # TODO: Delete and insert instead of sorting + kpoints.sort() + + else: + part_obj = data_objects[part_obj_name] + part_rgb = color_map[part_data.color_id].rgb + part_rgb_float = rgba_to_float(part_rgb, part_alpha) + + curves = part_obj.animation_data.action.fcurves + for d in range(3): + curve = curves.find("color", index=d) + kpoints, kpoints_list = get_keyframe_points(curve) + + point = next( + point + for point in kpoints_list + if point.co[0] == old_frame_start + ) + point.co = new_frame_start, part_rgb_float[d] + point.interpolation = "LINEAR" if new_fade else "CONSTANT" + + # TODO: Delete and insert instead of sorting + kpoints.sort() + + # update fake frame + scene = bpy.context.scene + + curves = scene.animation_data.action.fcurves + curve = curves.find("ld_control_frame") + + kpoints, kpoints_list = get_keyframe_points(curve) + point = next(point for point in kpoints_list if point.co[0] == old_frame_start) + + # update old ld_control_frame + try: + old_next_point = next(p for p in kpoints_list if p.co[0] > old_frame_start) + old_next_fade_points = [ + point + for point in kpoints_list + if point.co[0] > old_frame_start and point.co[1] == old_next_point.co[1] + ] + + if point.co[0] != point.co[1]: # old co's previous point fade + for old_p in old_next_fade_points: + old_p.co = old_p.co[0], point.co[1] + elif ( + old_next_point.co[0] != old_next_point.co[1] + ): # reset next point to frame_start + for old_p in old_next_fade_points: + old_p.co = old_p.co[0], old_next_point.co[0] + + except StopIteration: + pass + + # update new ld_control_frame + try: + new_next_point = next(p for p in kpoints_list if p.co[0] > new_frame_start) + new_next_fade_points = [ + point + for point in kpoints_list + if point.co[0] > new_frame_start and point.co[1] == new_next_point.co[1] + ] + + if new_next_point.co[0] != new_next_point.co[1]: # new co's previous point fade + point.co = new_frame_start, new_next_point.co[1] + else: + point.co = new_frame_start, new_frame_start + + if new_fade: # propagate fade to next points + for new_p in new_next_fade_points: + new_p.co = new_p.co[0], point.co[1] + else: # reset next point to frame_start + for new_p in new_next_fade_points: + new_p.co = new_p.co[0], new_next_point.co[0] + + except StopIteration: + pass + + point.interpolation = "CONSTANT" + kpoints.sort() + + # update rev frame (meta & data) + rev = ctrl_element.rev + + # TODO: update rev + + ctrl_rev: RevisionPropertyType = getattr(bpy.context.scene, "ld_ctrl_rev") + try: + ctrl_rev_item = next( + item for item in ctrl_rev if getattr(item, "frame_id") == ctrl_id + ) + + ctrl_rev_item.data = rev.data if rev else -1 + ctrl_rev_item.meta = rev.meta if rev else -1 + + ctrl_rev_item.frame_id = ctrl_id + ctrl_rev_item.frame_start = new_frame_start + + except StopIteration: + pass + + +def delete_single_ctrl_keyframe( + ctrl_id: MapID, incoming_frame_start: Optional[int] = None +): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + old_ctrl_map = state.control_map # only for checking dancer list + old_frame_start = ( + incoming_frame_start if incoming_frame_start else old_ctrl_map[ctrl_id].start + ) + dancers_array = state.dancers_array + + for dancer_item in dancers_array: + dancer_name = dancer_item.name + dancer_parts = dancer_item.parts + dancer_index = state.dancer_part_index_map[dancer_name].index + + for part_item in dancer_parts: + part_name = part_item.name + part_type = part_item.type + part_obj_name = f"{dancer_index}_{part_name}" + + match part_type: + case PartType.LED: + part_parent = data_objects[part_obj_name] + + for led_obj in part_parent.children: + curves = led_obj.animation_data.action.fcurves + index: Optional[int] = None + + for d in range(3): + curve = curves.find("color", index=d) + kpoints, kpoints_list = get_keyframe_points(curve) + + if index is None: + index, point = next( + (i, point) + for i, point in enumerate(kpoints_list) + if point.co[0] == old_frame_start + ) + else: + point = kpoints_list[index] + + kpoints.remove(point) + + case PartType.FIBER: + part_obj = data_objects[part_obj_name] + + curves = part_obj.animation_data.action.fcurves + for d in range(3): + curve = curves.find("color", index=d) + kpoints, kpoints_list = get_keyframe_points(curve) + + point = next( + point + for point in kpoints_list + if point.co[0] == old_frame_start + ) + kpoints.remove(point) + + # delete fake frame + scene = bpy.context.scene + + curves = scene.animation_data.action.fcurves + curve = curves.find("ld_control_frame") + kpoints, kpoints_list = get_keyframe_points(curve) + + point = next(point for point in kpoints_list if point.co[0] == old_frame_start) + + # update old ld_control_frame + try: + old_next_point = next(p for p in kpoints_list if p.co[0] > old_frame_start) + old_next_fade_points = [ + point + for point in kpoints_list + if point.co[0] > old_frame_start and point.co[1] == old_next_point.co[1] + ] + + if point.co[0] != point.co[1]: # old co's previous point fade + for old_p in old_next_fade_points: + old_p.co = old_p.co[0], point.co[1] + elif ( + old_next_point.co[0] != old_next_point.co[1] + ): # reset next point to frame_start + for old_p in old_next_fade_points: + old_p.co = old_p.co[0], old_next_point.co[0] + + except StopIteration: + pass + + kpoints.remove(point) + + # TODO: delete rev + + ctrl_rev: RevisionPropertyType = getattr(bpy.context.scene, "ld_ctrl_rev") + try: + ctrl_rev_index = next( + i for i, item in enumerate(ctrl_rev) if getattr(item, "frame_id") == ctrl_id + ) + ctrl_rev.remove(ctrl_rev_index) # type: ignore + + except StopIteration: + pass diff --git a/editor-blender/core/actions/property/animation_data/position.py b/editor-blender/core/actions/property/animation_data/position.py new file mode 100644 index 000000000..45f035c49 --- /dev/null +++ b/editor-blender/core/actions/property/animation_data/position.py @@ -0,0 +1,277 @@ +from typing import Dict, cast + +import bpy + +from .....properties.types import RevisionPropertyItemType, RevisionPropertyType +from ....models import MapID, PosMapElement +from ....states import state +from .utils import ensure_action, ensure_curve, get_keyframe_points + +""" +setups & update colormap(===setups) +""" + + +def set_pos_keyframes_from_state(): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + pos_map = state.pos_map + pos_frame_number = len(pos_map) + + sorted_pos_map = sorted(pos_map.items(), key=lambda item: item[1].start) + + for i, (id, pos_map_element) in enumerate(sorted_pos_map): + frame_start = pos_map_element.start + pos_status = pos_map_element.pos + + for dancer_name, pos in pos_status.items(): + dancer_location = (pos.x, pos.y, pos.z) + + dancer_obj = data_objects[dancer_name] + action = ensure_action(dancer_obj, dancer_name + "Action") + + curves = action.fcurves + for d in range(3): + curve = ensure_curve( + action, + "location", + index=d, + keyframe_points=pos_frame_number, + clear=i == 0, + ) + + _, kpoints_list = get_keyframe_points(curve) + point = kpoints_list[i] + point.co = frame_start, dancer_location[d] + + point.interpolation = "LINEAR" + if i == pos_frame_number - 1: + curves.find("location", index=d).keyframe_points.sort() + + # insert fake frame + scene = bpy.context.scene + action = ensure_action(scene, "SceneAction") + + curve = ensure_curve( + action, "ld_pos_frame", keyframe_points=pos_frame_number, clear=i == 0 + ) + _, kpoints_list = get_keyframe_points(curve) + + point = kpoints_list[i] + point.co = frame_start, frame_start + point.interpolation = "CONSTANT" + + # set revision + rev = pos_map_element.rev + + # curve = ensure_curve( + # action, "ld_pos_meta", keyframe_points=pos_frame_number, clear=i == 0 + # ) + # _, kpoints_list = get_keyframe_points(curve) + # + # point = kpoints_list[i] + # point.co = frame_start, rev.meta + # point.interpolation = "CONSTANT" + # + # curve = ensure_curve( + # action, "ld_pos_data", keyframe_points=pos_frame_number, clear=i == 0 + # ) + # _, kpoints_list = get_keyframe_points(curve) + # + # point = kpoints_list[i] + # point.co = frame_start, rev.data + # point.interpolation = "CONSTANT" + + pos_rev_item: RevisionPropertyItemType = getattr( + bpy.context.scene, "ld_pos_rev" + ).add() + + pos_rev_item.data = rev.data if rev else -1 + pos_rev_item.meta = rev.meta if rev else -1 + + pos_rev_item.frame_id = id + pos_rev_item.frame_start = frame_start + + +""" +update position keyframes +""" + + +def add_single_pos_keyframe(id: MapID, pos_element: PosMapElement): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + frame_start = pos_element.start + pos_status = pos_element.pos + + for dancer_name, pos in pos_status.items(): + dancer_location = (pos.x, pos.y, pos.z) + dancer_obj = data_objects[dancer_name] + + curves = dancer_obj.animation_data.action.fcurves + for d in range(3): + point = curves.find("location", index=d).keyframe_points.insert( + frame_start, dancer_location[d] + ) + point.interpolation = "LINEAR" + + scene = bpy.context.scene + curves = scene.animation_data.action.fcurves + + curve = curves.find("ld_pos_frame") + point = curve.keyframe_points.insert(frame_start, frame_start) + point.interpolation = "CONSTANT" + + # insert rev frame (meta & data) + rev = pos_element.rev + + # curve = curves.find("ld_pos_meta") + # point = curve.keyframe_points.insert(frame_start, (rev.meta if rev else -1)) + # point.interpolation = "CONSTANT" + # + # curve = curves.find("ld_pos_data") + # point = curve.keyframe_points.insert(frame_start, (rev.data if rev else -1)) + # point.interpolation = "CONSTANT" + + pos_rev: RevisionPropertyItemType = getattr(bpy.context.scene, "ld_pos_rev").add() + + pos_rev.data = rev.data if rev else -1 + pos_rev.meta = rev.meta if rev else -1 + + pos_rev.frame_id = id + pos_rev.frame_start = frame_start + + +def edit_single_pos_keyframe(pos_id: MapID, pos_element: PosMapElement): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + old_pos_map = state.pos_map # pos_map before update + old_pos_frame = old_pos_map[pos_id] + old_frame_start = old_pos_frame.start + + new_pos_status = pos_element.pos + new_frame_start = pos_element.start + + update_time = old_frame_start != new_frame_start + + for dancer_name, pos in new_pos_status.items(): + dancer_location = (pos.x, pos.y, pos.z) + dancer_obj = data_objects[dancer_name] + + curves = dancer_obj.animation_data.action.fcurves + for d in range(3): + curve = curves.find("location", index=d) + kpoints, kpoints_list = get_keyframe_points(curve) + + point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + point.co = new_frame_start, dancer_location[d] + + point.interpolation = "LINEAR" + + if update_time: + kpoints.sort() + + scene = bpy.context.scene + + curves = scene.animation_data.action.fcurves + curve = curves.find("ld_pos_frame") + kpoints, kpoints_list = get_keyframe_points(curve) + + point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + point.co = new_frame_start, new_frame_start + + if update_time: + kpoints.sort() + + # insert rev frame (meta & data) + rev = pos_element.rev + + # meta keyframe + # curve = curves.find("ld_pos_meta") + # kpoints, kpoints_list = get_keyframe_points(curve) + # + # point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + # point.co = new_frame_start, rev.meta + # + # if update_time: + # kpoints.sort() + + # data keyframe + # curve = curves.find("ld_pos_data") + # kpoints, kpoints_list = get_keyframe_points(curve) + # + # point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + # point.co = new_frame_start, rev.data + # + # if update_time: + # kpoints.sort() + + # update rev frame + pos_rev: RevisionPropertyType = getattr(bpy.context.scene, "ld_pos_rev") + try: + pos_rev_item = next( + item for item in pos_rev if getattr(item, "frame_id") == pos_id + ) + + pos_rev_item.data = rev.data if rev else -1 + pos_rev_item.meta = rev.meta if rev else -1 + + pos_rev_item.frame_id = pos_id + pos_rev_item.frame_start = new_frame_start + + except StopIteration: + pass + + +def delete_single_pos_keyframe(pos_id: MapID, incoming_frame_start: int | None = None): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + old_pos_map = state.pos_map # pos_map before update + old_frame_start = ( + incoming_frame_start if incoming_frame_start else old_pos_map[pos_id].start + ) + + dancers_array = state.dancers_array + for dancer_item in dancers_array: + dancer_name = dancer_item.name + dancer_obj = data_objects[dancer_name] + + curves = dancer_obj.animation_data.action.fcurves + for d in range(3): + curve = curves.find("location", index=d) + kpoints, kpoints_list = get_keyframe_points(curve) + + point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + kpoints.remove(point) + + scene = bpy.context.scene + + curves = scene.animation_data.action.fcurves + curve = curves.find("ld_pos_frame") + kpoints, kpoints_list = get_keyframe_points(curve) + + point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + kpoints.remove(point) + + # delete rev frame (meta & data) + # curve = curves.find("ld_pos_meta") + # kpoints, kpoints_list = get_keyframe_points(curve) + # + # point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + # kpoints.remove(point) + # + # curve = curves.find("ld_pos_data") + # kpoints, kpoints_list = get_keyframe_points(curve) + # + # point = next(p for p in kpoints_list if p.co[0] == old_frame_start) + # kpoints.remove(point) + + pos_rev: RevisionPropertyType = getattr(bpy.context.scene, "ld_pos_rev") + try: + pos_rev_index = next( + i for i, item in enumerate(pos_rev) if getattr(item, "frame_id") == pos_id + ) + pos_rev.remove(pos_rev_index) # type: ignore + + except StopIteration: + pass diff --git a/editor-blender/core/actions/property/animation_data/utils.py b/editor-blender/core/actions/property/animation_data/utils.py new file mode 100644 index 000000000..8523cf1cd --- /dev/null +++ b/editor-blender/core/actions/property/animation_data/utils.py @@ -0,0 +1,46 @@ +from typing import List, Optional, Tuple, Union, cast + +import bpy + + +def ensure_action( + obj: Union[bpy.types.Object, bpy.types.Scene], action_name: str +) -> bpy.types.Action: + anim_data = cast(Optional[bpy.types.AnimData], obj.animation_data) + if anim_data is None: + obj.animation_data_create() + anim_data = obj.animation_data + + action = cast(Optional[bpy.types.Action], anim_data.action) + if action is None: + obj.animation_data.action = bpy.data.actions.new(action_name) + action = obj.animation_data.action + + return action + + +def ensure_curve( + action: bpy.types.Action, + data_path: str, + index: int = 0, + keyframe_points: int = 0, + clear: bool = False, +) -> bpy.types.FCurve: + curves = action.fcurves + curve = cast(Optional[bpy.types.FCurve], curves.find(data_path, index=index)) + + if curve is None: + curves.new(data_path, index=index) + curve = curves.find(data_path, index=index) + curve.keyframe_points.add(keyframe_points) + elif clear: + curve.keyframe_points.clear() + curve.keyframe_points.add(keyframe_points) + + return curve + + +def get_keyframe_points( + curve: bpy.types.FCurve, +) -> Tuple[bpy.types.FCurveKeyframePoints, List[bpy.types.Keyframe]]: + return curve.keyframe_points, cast(List[bpy.types.Keyframe], curve.keyframe_points) diff --git a/editor-blender/core/actions/property/lights.py b/editor-blender/core/actions/property/lights.py index e58ebf7c5..fc8f25fb0 100644 --- a/editor-blender/core/actions/property/lights.py +++ b/editor-blender/core/actions/property/lights.py @@ -12,13 +12,17 @@ def update_current_color(self: bpy.types.Object, context: bpy.types.Context): if state.edit_state != EditMode.EDITING or state.current_editing_detached: return + ld_alpha: int = getattr(self, "ld_alpha") + color_id: int = self["ld_color"] color = state.color_map[color_id] color_float = rgb_to_float(color.rgb) - self.color[0] = color_float[0] - self.color[1] = color_float[1] - self.color[2] = color_float[2] + setattr(self, "ld_color_float", color_float[:3]) + + self.color[0] = color_float[0] * (ld_alpha / 255) + self.color[1] = color_float[1] * (ld_alpha / 255) + self.color[2] = color_float[2] * (ld_alpha / 255) def update_current_effect(self: bpy.types.Object, context: bpy.types.Context): @@ -76,10 +80,16 @@ def update_current_alpha(self: bpy.types.Object, context: bpy.types.Context): ld_light_type: str = getattr(self, "ld_light_type") ld_alpha: int = getattr(self, "ld_alpha") + ld_color_float: List[float] = getattr(self, "ld_color_float") if ld_light_type == LightType.LED.value: led_bulb_objs: List[bpy.types.Object] = getattr(self, "children") for led_bulb_obj in led_bulb_objs: - led_bulb_obj.color[3] = ld_alpha / 255 + bulb_ld_color_float: List[float] = getattr(led_bulb_obj, "ld_color_float") + led_bulb_obj.color[0] = bulb_ld_color_float[0] * (ld_alpha / 255) + led_bulb_obj.color[1] = bulb_ld_color_float[1] * (ld_alpha / 255) + led_bulb_obj.color[2] = bulb_ld_color_float[2] * (ld_alpha / 255) else: - self.color[3] = ld_alpha / 255 + self.color[0] = ld_color_float[0] * (ld_alpha / 255) + self.color[1] = ld_color_float[1] * (ld_alpha / 255) + self.color[2] = ld_color_float[2] * (ld_alpha / 255) diff --git a/editor-blender/core/actions/property/revision.py b/editor-blender/core/actions/property/revision.py new file mode 100644 index 000000000..840cabbac --- /dev/null +++ b/editor-blender/core/actions/property/revision.py @@ -0,0 +1,70 @@ +import bpy + +from ....properties.types import RevisionPropertyType +from ...models import ControlMap, MapID, PosMap +from .animation_data import ( + add_single_ctrl_keyframe, + add_single_pos_keyframe, + delete_single_ctrl_keyframe, + delete_single_pos_keyframe, + edit_single_ctrl_keyframe, + edit_single_pos_keyframe, +) + + +def update_rev_changes(incoming_pos_map: PosMap, incoming_control_map: ControlMap): + # position + local_rev: RevisionPropertyType = getattr(bpy.context.scene, "ld_pos_rev") + incoming_rev = {id: element.rev for id, element in incoming_pos_map.items()} + + for rev in local_rev: + local_id: MapID = rev.frame_id + + incoming_rev_item = incoming_rev.get(local_id) + if incoming_rev_item is None: # delete + delete_single_pos_keyframe(local_id, rev.frame_start) + del incoming_rev[local_id] + + else: + if incoming_rev_item: + if ( + incoming_rev_item.data == rev.data + and incoming_rev_item.meta == rev.meta + and rev.data > 0 + and rev.meta > 0 + ): # local animation data matches incoming + continue + else: + edit_single_pos_keyframe(local_id, incoming_pos_map[rev.frame_id]) + del incoming_rev[local_id] + + for id in incoming_rev.keys(): + add_single_pos_keyframe(id, incoming_pos_map[id]) + + # control + # local_rev: RevisionPropertyType = getattr(bpy.context.scene, "ld_ctrl_rev") + # incoming_rev = {id: element.rev for id, element in incoming_pos_map.items()} + # + # for rev in local_rev: + # local_id: MapID = rev.frame_id + # if local_id not in incoming_rev.keys(): # delete + # delete_single_ctrl_keyframe(local_id, rev.frame_start) + # + # else: + # incoming_rev_item = incoming_rev[local_id] + # if incoming_rev_item: + # if ( + # incoming_rev_item.data == rev.data + # and incoming_rev_item.meta == rev.meta + # and rev.data > 0 + # and rev.meta > 0 + # ): # local animation data matches incoming + # continue + # else: + # edit_single_ctrl_keyframe( + # local_id, incoming_control_map[rev.frame_id] + # ) + # del incoming_rev[local_id] + # + # for id in incoming_rev.keys(): + # add_single_ctrl_keyframe(id, incoming_control_map[id]) diff --git a/editor-blender/core/actions/state/color_map.py b/editor-blender/core/actions/state/color_map.py index 7a77d348b..235f1582d 100644 --- a/editor-blender/core/actions/state/color_map.py +++ b/editor-blender/core/actions/state/color_map.py @@ -1,8 +1,11 @@ -from ...models import Color, ColorID, ColorMap, EditMode +import bpy + +from ...models import Color, ColorID, ColorMap, EditMode, FiberData, LEDData from ...states import state from ...utils.notification import notify from ...utils.ui import redraw_area from .color_palette import setup_color_palette_from_state +from .load import set_ctrl_keyframes_from_state def set_color_map(color_map: ColorMap): @@ -87,6 +90,7 @@ def apply_color_map_updates(): for color in color_map_updates.updated: state.color_map[color.id] = color + set_ctrl_keyframes_from_state() # TODO: test this for color_id in color_map_updates.deleted: del state.color_map[color_id] @@ -95,8 +99,6 @@ def apply_color_map_updates(): color_map_updates.updated.clear() color_map_updates.deleted.clear() - # TODO: Update animation data - setup_color_palette_from_state(state.color_map) state.color_map_pending = False diff --git a/editor-blender/core/actions/state/control_editor.py b/editor-blender/core/actions/state/control_editor.py index 512b17d06..b9c52d4d5 100644 --- a/editor-blender/core/actions/state/control_editor.py +++ b/editor-blender/core/actions/state/control_editor.py @@ -65,6 +65,8 @@ async def add_control_frame(): start = bpy.context.scene.frame_current controlData = control_status_state_to_mut(state.current_status) + print(controlData) + try: set_requesting(True) await control_agent.add_frame(start, False, controlData) @@ -118,8 +120,7 @@ async def save_control_frame(start: Optional[int] = None): if part.type == PartType.FIBER: partControlData.append((default_color, 0)) elif part.type == PartType.LED: - default_effect = list(state.led_map[part.name].values())[0].id - partControlData.append((default_effect, 0)) + partControlData.append((-1, 0)) controlData.append(partControlData) diff --git a/editor-blender/core/actions/state/control_map.py b/editor-blender/core/actions/state/control_map.py index c09dce2c4..6fb9596d0 100644 --- a/editor-blender/core/actions/state/control_map.py +++ b/editor-blender/core/actions/state/control_map.py @@ -2,6 +2,11 @@ from ...states import state from ...utils.notification import notify from ...utils.ui import redraw_area +from ..property.animation_data import ( + add_single_ctrl_keyframe, + delete_single_ctrl_keyframe, + edit_single_ctrl_keyframe, +) from .current_status import ( calculate_current_status_index, update_current_status_by_index, @@ -51,7 +56,7 @@ def delete_control(id: MapID): control_map_updates.deleted.append(id) if state.edit_state == EditMode.EDITING: - state.pos_map_pending = True + state.control_map_pending = True redraw_area({"VIEW_3D", "DOPESHEET_EDITOR"}) else: apply_control_map_updates() @@ -86,15 +91,16 @@ def update_control(id: MapID, frame: ControlMapElement): def apply_control_map_updates(): control_map_updates = state.control_map_updates - # TODO: Update animation data - for status in control_map_updates.added: + add_single_ctrl_keyframe(status[0], status[1]) state.control_map[status[0]] = status[1] for status in control_map_updates.updated: + edit_single_ctrl_keyframe(status[0], status[1]) state.control_map[status[0]] = status[1] for id in control_map_updates.deleted: + delete_single_ctrl_keyframe(id) del state.control_map[id] control_map_updates.added.clear() diff --git a/editor-blender/core/actions/state/current_status.py b/editor-blender/core/actions/state/current_status.py index b21e85546..37900af16 100644 --- a/editor-blender/core/actions/state/current_status.py +++ b/editor-blender/core/actions/state/current_status.py @@ -81,6 +81,3 @@ def update_current_status_by_index(): alpha = part_status.alpha setattr(part_obj, "ld_alpha", alpha) - - # WARNING: Testing - break diff --git a/editor-blender/core/actions/state/editor.py b/editor-blender/core/actions/state/editor.py index 00c4c630f..73b50a9d0 100644 --- a/editor-blender/core/actions/state/editor.py +++ b/editor-blender/core/actions/state/editor.py @@ -34,7 +34,7 @@ def setup_control_editor(): outliner_hide_one_level() outliner_hide_one_level() - set_dopesheet_filter("control") + set_dopesheet_filter("control_frame") state.editor = Editor.CONTROL_EDITOR @@ -52,7 +52,7 @@ def setup_pos_editor(): outliner_hide_one_level() outliner_hide_one_level() - set_dopesheet_filter("pos") + set_dopesheet_filter("pos_frame") state.editor = Editor.POS_EDITOR diff --git a/editor-blender/core/actions/state/fake_pos_map.py b/editor-blender/core/actions/state/fake_pos_map.py deleted file mode 100644 index 25c6832d5..000000000 --- a/editor-blender/core/actions/state/fake_pos_map.py +++ /dev/null @@ -1,529 +0,0 @@ -pos_map = { - "iObgAxPJyZ": { - "start": 0, - "pos": { - "1_vinc": { - "x": -3.94509765680373, - "y": 0.18350854652128135, - "z": 2.7169543365060287, - }, - "2_xN": { - "x": 3.4183320029838677, - "y": 0.14627327555104763, - "z": 2.750329012738364, - }, - }, - }, - "WtyofZmACB": { - "start": 13669, - "pos": { - "1_vinc": { - "x": -3.94509765680373, - "y": 0.18350854652128135, - "z": 2.7169543365060287, - }, - "2_xN": { - "x": 3.4183320029838677, - "y": 0.14627327555104763, - "z": 2.750329012738364, - }, - }, - }, - "LMHSPOGZhP": { - "start": 18614, - "pos": { - "1_vinc": { - "x": -3.94509765680373, - "y": 0.18350854652128135, - "z": 2.7169543365060287, - }, - "2_xN": { - "x": 3.4183320029838677, - "y": 0.14627327555104763, - "z": 2.750329012738364, - }, - }, - }, - "ZrarwrhuZc": { - "start": 19592, - "pos": { - "1_vinc": { - "x": -3.5815290312427486, - "y": 0.0017048250870850268, - "z": 5.865143718624838, - }, - "2_xN": {"x": 3.7819006285448493, "y": 0, "z": 5.898518394857173}, - }, - }, - "4dReA02Kgp": { - "start": 23630, - "pos": { - "1_vinc": { - "x": -3.5815290312427486, - "y": 0.0017048250870850268, - "z": 5.865143718624838, - }, - "2_xN": {"x": 3.7819006285448493, "y": 0, "z": 5.898518394857173}, - }, - }, - "AmatVCjM16": { - "start": 24038, - "pos": { - "1_vinc": { - "x": -6.204725100929196, - "y": 0.10038808200167537, - "z": 5.841817780147679, - }, - "2_xN": { - "x": 1.1587045588584015, - "y": 0.09868325691459034, - "z": 5.875192456380014, - }, - }, - }, - "Mq3uqdJ89I": { - "start": 25842, - "pos": { - "1_vinc": { - "x": -6.204725100929196, - "y": 0.10038808200167537, - "z": 5.841817780147679, - }, - "2_xN": { - "x": 1.1587045588584015, - "y": 0.09868325691459034, - "z": 5.875192456380014, - }, - }, - }, - "pWMN91TsLn": { - "start": 26391, - "pos": { - "1_vinc": { - "x": -4.199219592629044, - "y": 1.0931582804240563, - "z": 3.283970151753964, - }, - "2_xN": {"x": -2.8242776302394947, "y": 0, "z": 6.880267258061807}, - }, - }, - "h0sdGh8wKB": { - "start": 27181, - "pos": { - "1_vinc": { - "x": -1.9728998501132846, - "y": 1.3783305838335167, - "z": 2.4877907065354723, - }, - "2_xN": { - "x": 1.4072217689177453, - "y": 0.5861884526761472, - "z": 5.2524081755554874, - }, - }, - }, - "plna0tmrOO": { - "start": 27540, - "pos": { - "1_vinc": { - "x": 3.4194599566720134, - "y": 1.045630973357511, - "z": 3.2142823666700977, - }, - "2_xN": { - "x": 1.3632018401910653, - "y": 0.5861884526761472, - "z": 5.25352320458277, - }, - }, - }, - "PfoiRWFPBq": { - "start": 28401, - "pos": { - "1_vinc": { - "x": 3.4194599566720134, - "y": 1.045630973357511, - "z": 3.2142823666700977, - }, - "2_xN": { - "x": 1.3632018401910653, - "y": 0.5861884526761472, - "z": 5.25352320458277, - }, - }, - }, - "asixLnwKrt": { - "start": 28849, - "pos": { - "1_vinc": { - "x": 5.312347118466655, - "y": 1.045630973357511, - "z": 3.1663353528554854, - }, - "2_xN": { - "x": 1.3632018401910653, - "y": 0.5861884526761472, - "z": 5.25352320458277, - }, - }, - }, - "UV-W5rU3q6": { - "start": 30621, - "pos": { - "1_vinc": { - "x": 5.312347118466655, - "y": 1.045630973357511, - "z": 3.1663353528554854, - }, - "2_xN": { - "x": 1.3632018401910653, - "y": 0.5861884526761472, - "z": 5.25352320458277, - }, - }, - }, - "SbcV6c387U": { - "start": 32533, - "pos": { - "1_vinc": {"x": -9.47330541720127, "y": 0, "z": 8.965949850886457}, - "2_xN": { - "x": -0.10332828636914115, - "y": 0.12674532763688262, - "z": 6.48254592617835, - }, - }, - }, - "vRI_2M11y-": { - "start": 33930, - "pos": { - "1_vinc": {"x": -9.47330541720127, "y": 0, "z": 8.965949850886457}, - "2_xN": {"x": 6.737383067763911, "y": 0, "z": 3.6783244443206433}, - }, - }, - "iQvFiqudr3": { - "start": 35665, - "pos": { - "1_vinc": { - "x": -0.04671888140864411, - "y": 1.916987498937992, - "z": 3.754174533754755, - }, - "2_xN": { - "x": 6.610300998441749, - "y": 1.1248465764963882, - "z": 3.723240822030035, - }, - }, - }, - "F3igVDzRnR": { - "start": 39276, - "pos": { - "1_vinc": {"x": -0.0991302734445425, "y": 0, "z": 3.4801489855840106}, - "2_xN": {"x": 6.639860212004217, "y": 0, "z": 3.54175824421021}, - }, - }, - "Ou9ykxU3pS": { - "start": 40247, - "pos": { - "1_vinc": {"x": -3.486778028108315, "y": 0, "z": 3.350442620642963}, - "2_xN": {"x": 3.3733616289213417, "y": 0, "z": 3.416386574040933}, - }, - }, - "9h8oOkdhaI": { - "start": 42998, - "pos": { - "1_vinc": {"x": -3.5642434295146126, "y": 0, "z": 3.3098243910106344}, - "2_xN": {"x": 3.12834946880868, "y": 0, "z": 3.3896871451059374}, - }, - }, - "ATysaupjwb": { - "start": 43753, - "pos": { - "1_vinc": {"x": -2.4708894947548465, "y": 0, "z": 3.292906595996774}, - "2_xN": {"x": 4.364676626731061, "y": 0, "z": 3.3546521782235663}, - }, - }, - "JEEei0C0zF": { - "start": 50377, - "pos": { - "1_vinc": {"x": -2.4708894947548465, "y": 0, "z": 3.292906595996774}, - "2_xN": {"x": 4.364676626731061, "y": 0, "z": 3.3546521782235663}, - }, - }, - "iDXb7CiEy8": { - "start": 51065, - "pos": { - "1_vinc": {"x": -0.17975510258053795, "y": 0, "z": 4.538902905480883}, - "2_xN": { - "x": 0.02317921921542343, - "y": 0.14004599425267372, - "z": 2.562943346768564, - }, - }, - }, - "o9iFtF1SLJ": { - "start": 51377, - "pos": { - "1_vinc": {"x": -0.17975510258053795, "y": 0, "z": 4.538902905480883}, - "2_xN": { - "x": 0.02317921921542343, - "y": 0.14004599425267372, - "z": 2.562943346768564, - }, - }, - }, - "wuDnYBqmIJ": { - "start": 52076, - "pos": { - "1_vinc": {"x": -0.17975510258053795, "y": 0, "z": 4.538902905480883}, - "2_xN": { - "x": -1.5531689540720355, - "y": 0.14004599425267372, - "z": 2.648750025457026, - }, - }, - }, - "wEcJSqHEoG": { - "start": 52486, - "pos": { - "1_vinc": {"x": -0.17975510258053795, "y": 0, "z": 4.538902905480883}, - "2_xN": { - "x": -1.5531689540720355, - "y": 0.14004599425267372, - "z": 2.648750025457026, - }, - }, - }, - "6n-J03w6iq": { - "start": 52905, - "pos": { - "1_vinc": { - "x": 0.5591588083311925, - "y": 1.4210854715202004e-14, - "z": 4.498680986487039, - }, - "2_xN": { - "x": -1.5531689540720355, - "y": 0.14004599425267372, - "z": 2.648750025457026, - }, - }, - }, - "YQp7s8nVOQ": { - "start": 54585, - "pos": { - "1_vinc": { - "x": 0.5591588083311925, - "y": 1.4210854715202004e-14, - "z": 4.498680986487039, - }, - "2_xN": { - "x": -1.5531689540720355, - "y": 0.14004599425267372, - "z": 2.648750025457026, - }, - }, - }, - "UANnd4UQFU": { - "start": 61436, - "pos": { - "1_vinc": { - "x": -0.3197833435264119, - "y": 0.16838218438558172, - "z": 1.1499602699261784, - }, - "2_xN": { - "x": -0.21707421743489774, - "y": 0.09582455596656558, - "z": 3.6505779088244457, - }, - }, - }, - "bUQ9lVevf0": { - "start": 70253, - "pos": { - "1_vinc": { - "x": -0.3197833435264119, - "y": 0.16838218438558172, - "z": 1.1499602699261784, - }, - "2_xN": { - "x": -0.21707421743489774, - "y": 0.09582455596656558, - "z": 3.6505779088244457, - }, - }, - }, - "6GTDW-DgyJ": { - "start": 71090, - "pos": { - "1_vinc": { - "x": 4.13943343218631, - "y": 0.06463141772477954, - "z": 3.6470569377863216, - }, - "2_xN": { - "x": -0.21707421743489774, - "y": 0.09582455596656558, - "z": 3.6505779088244457, - }, - }, - }, - "XZAIkL7CCX": { - "start": 73240, - "pos": { - "1_vinc": { - "x": 4.13943343218631, - "y": 0.06463141772477954, - "z": 3.6470569377863216, - }, - "2_xN": { - "x": -0.21707421743489774, - "y": 0.09582455596656558, - "z": 3.6505779088244457, - }, - }, - }, - "ftbQP6kB9K": { - "start": 74141, - "pos": { - "1_vinc": { - "x": 2.002778193826425, - "y": 0.09376857751961776, - "z": 3.7040653398322876, - }, - "2_xN": { - "x": -2.353729455794783, - "y": 0.1249617157614038, - "z": 3.7075863108704117, - }, - }, - }, - "T9qYxNiftG": { - "start": 75371, - "pos": { - "1_vinc": { - "x": 2.002778193826425, - "y": 0.09376857751961776, - "z": 3.7040653398322876, - }, - "2_xN": { - "x": -2.353729455794783, - "y": 0.1249617157614038, - "z": 3.7075863108704117, - }, - }, - }, - "lNcrrqkeYm": { - "start": 75709, - "pos": { - "1_vinc": { - "x": 4.168630218114863, - "y": 0.035494257929923556, - "z": 3.6434322192152395, - }, - "2_xN": { - "x": -0.18787743150634428, - "y": 0.0666873961717096, - "z": 3.6469531902533636, - }, - }, - }, - "cBnbaP2VlJ": { - "start": 79009, - "pos": { - "1_vinc": { - "x": 4.168630218114863, - "y": 0.035494257929923556, - "z": 3.6434322192152395, - }, - "2_xN": { - "x": -0.18787743150634428, - "y": 0.0666873961717096, - "z": 3.6469531902533636, - }, - }, - }, - "5QRj1SdOH_": { - "start": 79164, - "pos": { - "1_vinc": { - "x": 4.168630218114863, - "y": 0.035494257929923556, - "z": 3.6434322192152395, - }, - "2_xN": { - "x": -0.18787743150634428, - "y": 0.0666873961717096, - "z": 3.6469531902533636, - }, - }, - }, - "OvINgARnts": { - "start": 82866, - "pos": { - "1_vinc": { - "x": -3.2367464206002925, - "y": 0.03549425792992533, - "z": 3.831016596993792, - }, - "2_xN": { - "x": -7.5932540702215, - "y": 0.06668739617171138, - "z": 3.8345375680319163, - }, - }, - }, - "e_yxH7ySvQ": { - "start": 85544, - "pos": { - "1_vinc": { - "x": 2.002851229959149, - "y": 0.12290573731445154, - "z": 3.706948629354323, - }, - "2_xN": { - "x": -2.353656419662058, - "y": 0.15409887555623758, - "z": 3.710469600392447, - }, - }, - }, - "fWPELc7HZH": { - "start": 56576, - "pos": { - "1_vinc": {"x": 7.962666570745725, "y": 0, "z": 7.922116578644899}, - "2_xN": {"x": -8.792359622175441, "y": 0, "z": 7.772143418579503}, - }, - }, - "6RTL7hBhHE": { - "start": 57930, - "pos": { - "1_vinc": { - "x": -3.159888444215924, - "y": 0.3197398140343397, - "z": 2.488359230308325, - }, - "2_xN": { - "x": 2.867816751454317, - "y": 0.3326726500534124, - "z": 2.717345115420425, - }, - }, - }, - "3fDpaECOJj": { - "start": 60692, - "pos": { - "1_vinc": { - "x": -3.159888444215924, - "y": 0.3197398140343397, - "z": 2.488359230308325, - }, - "2_xN": { - "x": 2.867816751454317, - "y": 0.3326726500534124, - "z": 2.717345115420425, - }, - }, - }, -} diff --git a/editor-blender/core/actions/state/initialize.py b/editor-blender/core/actions/state/initialize.py index a09c1296a..f7748d314 100644 --- a/editor-blender/core/actions/state/initialize.py +++ b/editor-blender/core/actions/state/initialize.py @@ -5,6 +5,7 @@ from ....api.auth_agent import auth_agent from ....api.color_agent import color_agent +from ....api.control_agent import control_agent from ....api.dancer_agent import dancer_agent from ....api.led_agent import led_agent from ....api.model_agent import model_agent @@ -19,6 +20,7 @@ set_running, ) from ....core.actions.state.color_map import set_color_map +from ....core.actions.state.control_map import set_control_map # from ....core.actions.state.color_map import set_color_map # from ....core.actions.state.control_map import set_control_map @@ -156,9 +158,6 @@ async def init_blender(): state.init_editor_task.cancel() state.init_editor_task = AsyncTask(init_editor).exec() - # Setup control editor UI - setup_control_editor() - def close_blender(): set_running(False) @@ -189,10 +188,10 @@ async def init_editor(): empty_task = asyncio.create_task(asyncio.sleep(0)) batches_functions = [ - # [load_data, init_color_map], [init_models, init_dancers], [init_color_map, init_led_map], [init_current_pos, init_current_status], + [load_data], # [init_current_status, init_current_pos, init_current_led_status, sync_led_effect_record], # [sync_current_led_status], ] @@ -244,6 +243,9 @@ async def init_editor(): state.current_control_index = calculate_current_status_index() update_current_status_by_index() + # Setup control editor UI + setup_control_editor() + redraw_area({"VIEW_3D", "DOPESHEET_EDITOR"}) @@ -315,13 +317,6 @@ async def init_dancers(): index=index, parts=parts ) - # selected: Selected = dict( - # [ - # (dancer_name, SelectedItem(selected=False, parts=[])) - # for dancer_name in dancer_names - # ] - # ) - state.dancers = dancers state.dancer_names = dancer_names state.part_type_map = part_type_map @@ -330,8 +325,6 @@ async def init_dancers(): state.dancers_array = dancers_array state.dancer_part_index_map = dancer_part_index_map - # state.selected = selected - print("Dancers initialized") @@ -355,6 +348,16 @@ async def init_led_map(): print("LED map initialized") +async def init_control_map(): + control_map = await control_agent.get_control_map() + if control_map is None: + raise Exception("Control map not found") + + set_control_map(control_map) + + print("Control map initialized") + + async def init_current_status(): control_map, control_record = await get_control() diff --git a/editor-blender/core/actions/state/load.py b/editor-blender/core/actions/state/load.py index dd66ceda0..62f76af07 100644 --- a/editor-blender/core/actions/state/load.py +++ b/editor-blender/core/actions/state/load.py @@ -1,14 +1,22 @@ import os -from typing import Any +from typing import Any, Dict, List, Set, cast import bpy from ....client import client -from ....properties.types import ObjectType -from ...models import FiberData, LEDData +from ....properties.types import LightType, ObjectType +from ...actions.property.revision import update_rev_changes +from ...models import DancersArrayPartsItem, PartType from ...states import state +from ...utils.ui import set_dopesheet_filter +from ..property.animation_data import ( + set_ctrl_keyframes_from_state, + set_pos_keyframes_from_state, +) -asset_path = bpy.context.preferences.filepaths.asset_libraries["User Library"].path +asset_path = cast( + str, bpy.context.preferences.filepaths.asset_libraries["User Library"].path +) target_path = os.path.join(asset_path, "LightDance") @@ -23,119 +31,257 @@ async def fetch_data(reload: bool = False): param reload: Fetch assets again even they already exist is true, otherwise only fetch missing assets. """ print("fetching data") - if client.http_client: - async with client.http_client.get("/data/load.json") as response: - assets_load = await response.json() + use_draco = False + + if client.file_client: + assets_load: Dict[str, Any] = await client.download_json("/data/load.json") + try: - url_set = set() + url_set: Set[str] = set() for tag in ["Music", "LightPresets", "PosPresets"]: url_set.add(assets_load[tag]) + for key in assets_load["DancerMap"]: - url_set.add(assets_load["DancerMap"][key]["url"]) + raw_url = assets_load["DancerMap"][key]["url"] + if use_draco: + model_url = raw_url + else: + model_url = "".join(raw_url.split(".draco")) + assets_load["DancerMap"][key]["url"] = model_url + + url_set.add(model_url) + for url in url_set: file_path = os.path.normpath(target_path + url) file_dir = os.path.dirname(file_path) if os.path.isfile(file_path) and not reload: continue + if not os.path.exists(file_dir): os.makedirs(file_dir) print("created folder: ", file_dir) - async with client.http_client.get(url) as response: - data = await response.content.read() - print("fetched file ", url, "from server") - with open(file_path, "w+b") as file: - file.write(data) + + data = await client.download_binary(url) + print("fetched file ", url, "from server") + with open(file_path, "w+b") as file: + file.write(data) + except Exception as e: print(e) - """ - temp fetch control map - """ - from ....api.control_agent import control_agent - from ...utils.convert import control_map_query_to_state - control_query = await control_agent.get_control_map_payload() - if control_query is None: - raise Exception("Control map not found") - - state.control_map = control_map_query_to_state(control_query) else: - raise Exception("HTTP client is not initialized") + raise Exception("File client is not initialized") + return assets_load -def setup_assets(assets_load): +def import_model_to_asset( + model_name: str, model_filepath: str, parts: List[DancersArrayPartsItem] +): + """ + set dancer collection asset + """ + bpy.ops.import_scene.gltf( + filepath=model_filepath + ) # here all parts of dancer is selected + model_objs = bpy.context.selected_objects + + col = bpy.data.collections.new(model_name) + for obj in model_objs: + for old_col in obj.users_collection: + old_col.objects.unlink(obj) + col.objects.link(obj) + + # avoid part name conflict + obj.name = f"{model_name}.{obj.name}" + + # Clean meshes + sphere_mesh = find_first_mesh("Sphere") + sphere_mesh.name = f"{model_name}.Sphere" + + for obj in model_objs: + if obj.type == "EMPTY": + continue + if "Sphere" in obj.data.name and obj.data != sphere_mesh: + bpy.data.meshes.remove(cast(bpy.types.Mesh, obj.data), do_unlink=True) + obj.data = sphere_mesh + + human_mesh = find_first_mesh("human") + human_mesh.name = f"{model_name}.Human" + + for obj in model_objs: + if obj.type == "EMPTY": + continue + mesh = obj.data + if "BezierCurve" in mesh.name and model_name not in mesh.name: + mesh.name = f"{model_name}.{mesh.name}" + + col.asset_mark() + for part in parts: + part_objects = [ + part_obj for part_obj in model_objs if part_obj.name.find(part.name) >= 0 + ] + if len(part_objects) == 0: + print("Dancer part not found (maybe should reload asset)") + + bpy.ops.outliner.orphans_purge(do_recursive=True) + print(f"Model: {model_name} imported") + + +def find_first_mesh(mesh_name: str) -> bpy.types.Mesh: + data_meshes = cast(Dict[str, bpy.types.Mesh], bpy.data.meshes) + mesh = data_meshes.get(mesh_name) + + if mesh is None: + candidates = [name for name in data_meshes.keys() if name.find(mesh_name) == 0] + numbers = [int(name.split(".")[-1]) for name in candidates] + mesh = data_meshes[candidates[numbers.index(min(numbers))]] + + return mesh + + +def setup_objects(assets_load: Dict[str, Any]): """ - clear all objects + clear all objects in viewport """ - # bpy.ops.object.select_all(action='DESELECT') - # bpy.ops.object.select_all() - # bpy.ops.object.delete() + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + for old_obj in data_objects.values(): + if old_obj.visible_get() and not hasattr(old_obj, "ld_dancer_name"): + bpy.data.objects.remove(old_obj) + """ set dancer objects """ + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + if check_local_object_list(): + print("local objects detected") + return + else: + for old_obj in data_objects.values(): + if old_obj.visible_get(): + bpy.data.objects.remove(old_obj) + dancer_array = state.dancers_array for dancer in dancer_array: dancer_name = dancer.name + dancer_index = dancer_name.split("_")[0] dancer_load = assets_load["DancerMap"][dancer_name] if dancer_name in bpy.context.scene.objects.keys(): continue - dancer_file = dancer_load["url"] - dancer_filepath = os.path.normpath(target_path + dancer_file) - dancer_parent = bpy.data.objects.new(dancer_name, None) - bpy.context.object.empty_display_size = 0 - setattr(dancer_parent, "ld_object_type", ObjectType.DANCER.value) - bpy.context.scene.collection.objects.link(dancer_parent) - bpy.ops.import_scene.gltf( - filepath=dancer_filepath - ) # here all parts of dancer is selected - dancer_objects = bpy.context.selected_objects - dancer_human = next(obj for obj in dancer_objects if obj.name[0:5] == "Human") + + model_file: str = dancer_load["url"] + model_filepath = os.path.normpath(target_path + model_file) + model_name: str = dancer_load["modelName"] + + if model_name not in bpy.data.collections.keys(): + import_model_to_asset(model_name, model_filepath, dancer.parts) + + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + dancer_asset = cast(bpy.types.Collection, bpy.data.collections[model_name]) + + dancer_asset_objects_dict = { + obj.name: cast(bpy.types.Object, obj.copy()) + for obj in cast(List[bpy.types.Object], dancer_asset.all_objects) + } + + for name, obj in dancer_asset_objects_dict.items(): + pure_name = ".".join(name.split(".")[1:]) + new_name = f"{dancer_index}_{pure_name}" + if pure_name == model_name: + new_name = dancer_name + obj.name = new_name + + dancer_asset_objects = { + obj.name: obj + for obj in cast(List[bpy.types.Object], dancer_asset_objects_dict.values()) + } + + # for name, obj in dancer_asset_objects.items(): + # print(name, obj) + # break + + # dancer_parent = bpy.data.objects.new(dancer_name, None) + dancer_obj = dancer_asset_objects[dancer_name] set_bpy_props( - dancer_human, - name=f"{dancer.name}.Human", - parent=dancer_parent, - ld_object_type=ObjectType.HUMAN.value, + dancer_obj, + empty_display_size=0, + ld_dancer_name=dancer.name, + ld_model_name=model_name, + ld_object_type=ObjectType.DANCER.value, + ) + bpy.context.scene.collection.objects.link(dancer_obj) + + human_name = f"{dancer_index}_Human" + human_obj = dancer_asset_objects[human_name] + set_bpy_props( + human_obj, + parent=dancer_obj, color=(0, 0, 0, 1), - data=bpy.data.meshes["human"], + ld_object_type=ObjectType.HUMAN.value, + ld_dancer_name=dancer.name, + ld_model_name=model_name, ) - for item in dancer.parts: - part_objects = [i for i in dancer_objects if i.name.find(item.name) >= 0] - if len(part_objects) == 0: + bpy.context.scene.collection.objects.link(human_obj) + + for part_item in dancer.parts: + part_obj_name = f"{dancer_index}_{part_item.name}" + part_obj = dancer_asset_objects.get(part_obj_name) + + if part_obj is None: print("Dancer part not found (maybe should reload asset)") - if item.type.value == "LED": - parts_parent = bpy.data.objects.new( - f"{dancer.name}.{item.name}.parent", None - ) - bpy.context.scene.collection.objects.link(parts_parent) + continue + + if part_item.type.value == "LED": set_bpy_props( - parts_parent, - parent=dancer_parent, + part_obj, + parent=dancer_obj, + empty_display_size=0, ld_object_type=ObjectType.LIGHT.value, - ld_light_type=item.type.value.lower(), - ld_part_name=item.name, + ld_light_type=LightType.LED.value, + ld_part_name=part_item.name, + ld_dancer_name=dancer.name, + ld_model_name=model_name, ) - bpy.context.object.empty_display_size = 0 - for obj in part_objects: - obj.name = f"{dancer.name}.{item.name}" + bpy.context.scene.collection.objects.link(part_obj) + + led_objs = [ + obj + for obj_name, obj in dancer_asset_objects.items() + if f"{part_obj_name}." in obj_name + ] + for led_obj in led_objs: + position = int(led_obj.name.split(".")[-1]) set_bpy_props( - obj, - parent=parts_parent, + led_obj, + parent=part_obj, + color=(0, 0, 0, 1), ld_object_type=ObjectType.LIGHT.value, - ld_light_type=item.type.value.lower(), - ld_part_name=item.name, - data=bpy.data.meshes["Sphere.001"], + ld_light_type=LightType.LED_BULB.value, + ld_part_name=part_item.name, + ld_dancer_name=dancer.name, + ld_model_name=model_name, + ld_led_pos=position, ) - elif item.type.value == "FIBER": - obj = part_objects[0] - obj.name = f"{dancer.name}.{item.name}" - obj.parent = dancer_parent - setattr(obj, "ld_object_type", "light") - setattr(obj, "ld_light_type", item.type.value.lower()) - setattr(obj, "ld_part_name", item.name) - bpy.ops.outliner.orphans_purge(do_recursive=True) + bpy.context.scene.collection.objects.link(led_obj) + + elif part_item.type.value == "FIBER": + set_bpy_props( + part_obj, + parent=dancer_obj, + name=part_obj_name, + color=(0, 0, 0, 1), + ld_object_type=ObjectType.LIGHT.value, + ld_light_type=LightType.FIBER.value, + ld_part_name=part_item.name, + ld_dancer_name=dancer.name, + ld_model_name=model_name, + ) + bpy.context.scene.collection.objects.link(part_obj) -def set_music_from_load(assets_load): +def setup_music(assets_load: Dict[str, Any]): """ set music """ @@ -143,188 +289,102 @@ def set_music_from_load(assets_load): if not scene.sequence_editor: scene.sequence_editor_create() music_filepath = os.path.normpath(target_path + assets_load["Music"]) + if scene.sequence_editor.sequences: + sequence = cast(bpy.types.SoundSequence, scene.sequence_editor.sequences[0]) + scene.sequence_editor.sequences.remove(sequence) + scene.sequence_editor.sequences.new_sound( "music", filepath=music_filepath, channel=1, frame_start=0 ) -""" -init position keyframes -""" - - -def init_pos_keyframes_from_state(): - # pos_map = state.pos_map - from .fake_pos_map import pos_map # TODO: remove fake pos map - - pos_frame_number = len(pos_map) - for i, (_, pos_map_element) in enumerate( - pos_map.items() - ): # change to enumerate over dancers - frame_start = pos_map_element["start"] # type: ignore - pos_status = pos_map_element["pos"] # type: ignore - for dancer_name, pos in pos_status.items(): - dancer_obj = bpy.data.objects[dancer_name] - dancer_location = (pos["x"], pos["y"], pos["z"]) - if dancer_obj.animation_data is None: - dancer_obj.animation_data_create() - if dancer_obj.animation_data.action is None: - dancer_obj.animation_data.action = bpy.data.actions.new( - dancer_name + "Action" - ) - curves = dancer_obj.animation_data.action.fcurves - for d in range(3): - if curves.find("location", index=d) is None: - curves.new("location", index=d) - curves.find("location", index=d).keyframe_points.add( - pos_frame_number - ) - point = curves.find("location", index=d).keyframe_points[i] - point.co = frame_start, dancer_location[d] - point.interpolation = "LINEAR" - if i == pos_frame_number - 1: - curves.find("location", index=d).keyframe_points.sort() - # insert fake frame - scene = bpy.context.scene - if scene.animation_data is None: - scene.animation_data_create() - if scene.animation_data.action is None: - scene.animation_data.action = bpy.data.actions.new("SceneAction") - curves = scene.animation_data.action.fcurves - if curves.find("ld_pos_frame") is None: - curves.new("ld_pos_frame") - curves.find("ld_pos_frame").keyframe_points.add(pos_frame_number) - curves.find("ld_pos_frame").keyframe_points[i].co = frame_start, i % 2 - curves.find("ld_pos_frame").keyframe_points[i].interpolation = "CONSTANT" - if i == pos_frame_number - 1: - curves.find("ld_pos_frame").keyframe_points.sort() - - -""" -init control keyframes -""" - - -def init_ctrl_keyframes_from_state(): - ctrl_map = state.control_map - color_map = state.color_map - led_effect_table = state.led_effect_id_table - print(led_effect_table) - ctrl_frame_number = len(ctrl_map) - for i, (id, ctrl_map_element) in enumerate(ctrl_map.items()): - frame_start = ctrl_map_element.start - fade = ctrl_map_element.fade - ctrl_status = ctrl_map_element.status - for dancer_name, ctrl in ctrl_status.items(): - for part_name, part_data in ctrl.items(): - if isinstance(part_data, LEDData): - part_parent = bpy.data.objects[f"{dancer_name}.{part_name}.parent"] - # part_effect = led_effect_table[part_data.effect_id] - # part_effect_frames = part_effect.effects - # for effect_frame in part_effect_frames: - # effect_frame_start = frame_start + effect_frame.start - # effect_list = effect_frame.effect - # effect_fade = effect_frame.fade - # for i in range(len(part_parent.children)): - # led_obj = part_parent.children[i] - # led_data = effect_list[i] - # led_rgb = color_map[led_data.color_id].rgb - # led_rgba = ( - # led_rgb[0]/255, - # led_rgb[1]/255, - # led_rgb[2]/255, - # led_data.alpha/10 - # ) - # if led_obj.animation_data is None: - # led_obj.animation_data_create() - # if led_obj.animation_data.action is None: - # led_obj.animation_data.action = bpy.data.actions.new(part_name+"Action") - # curves = led_obj.animation_data.action.fcurves - # for d in range(4): - # if curves.find("color", index=d) is None: - # curves.new("color", index=d) - # curves.find("color", index=d).keyframe_points.add(ctrl_frame_number) - # point = curves.find("color", index=d).keyframe_points[i] - # point.co = effect_frame_start, led_rgba[d] - # point.interpolation = "LINEAR" if effect_fade else "CONSTANT" - # if i == ctrl_frame_number - 1: - # curves.find("color", index=d).keyframe_points.sort() - - elif isinstance(part_data, FiberData): - part_obj = bpy.data.objects[f"{dancer_name}.{part_name}"] - part_rgb = color_map[part_data.color_id].rgb - part_rgba = ( - part_rgb[0] / 255, - part_rgb[1] / 255, - part_rgb[2] / 255, - part_data.alpha / 10, - ) - if part_obj.animation_data is None: - part_obj.animation_data_create() - if part_obj.animation_data.action is None: - part_obj.animation_data.action = bpy.data.actions.new( - part_name + "Action" - ) - curves = part_obj.animation_data.action.fcurves - for d in range(4): - if curves.find("color", index=d) is None: - curves.new("color", index=d) - curves.find("color", index=d).keyframe_points.add( - ctrl_frame_number - ) - point = curves.find("color", index=d).keyframe_points[i] - point.co = frame_start, part_rgba[d] - point.interpolation = "LINEAR" if fade else "CONSTANT" - if i == ctrl_frame_number - 1: - curves.find("color", index=d).keyframe_points.sort() - else: - print("Invalid part data") - # insert fake frame - scene = bpy.context.scene - if scene.animation_data is None: - scene.animation_data_create() - if scene.animation_data.action is None: - scene.animation_data.action = bpy.data.actions.new("SceneAction") - curves = scene.animation_data.action.fcurves - if curves.find("ld_control_frame") is None: - curves.new("ld_control_frame") - curves.find("ld_control_frame").keyframe_points.add(ctrl_frame_number) - curves.find("ld_control_frame").keyframe_points[i].co = frame_start, i % 2 - curves.find("ld_control_frame").keyframe_points[i].interpolation = "CONSTANT" - if i == ctrl_frame_number - 1: - curves.find("ld_control_frame").keyframe_points.sort() - - def setup_viewport(): """ 3d viewport """ - view_3d = next(a for a in bpy.context.screen.areas if a.ui_type == "VIEW_3D") - setattr(view_3d.spaces.active.overlay, "show_relationship_lines", False) # type: ignore - setattr(view_3d.spaces.active.shading, "background_type", "VIEWPORT") # type: ignore - setattr(view_3d.spaces.active.shading, "background_color", (0, 0, 0)) # type: ignore - setattr(view_3d.spaces.active.shading, "color_type", "OBJECT") # type: ignore - setattr(view_3d.spaces.active.shading, "light", "FLAT") # type: ignore + view_3d = next( + area + for area in cast(List[bpy.types.Area], bpy.context.screen.areas) + if area.ui_type == "VIEW_3D" + ) + + space = cast(bpy.types.SpaceView3D, view_3d.spaces.active) + space.overlay.show_relationship_lines = False + space.shading.background_type = "VIEWPORT" + space.shading.background_color = (0, 0, 0) + space.shading.color_type = "OBJECT" + space.shading.light = "FLAT" """ timeline """ bpy.context.scene.render.fps = 1000 + bpy.context.scene.frame_start = 0 bpy.context.scene.frame_end = bpy.context.scene.sequence_editor.sequences[ 0 ].frame_duration + bpy.context.scene.show_keys_from_selected_only = False bpy.context.scene.sync_mode = "AUDIO_SYNC" - timeline = next(a for a in bpy.context.screen.areas if a.ui_type == "TIMELINE") - setattr(timeline.spaces.active, "show_seconds", True) # type: ignore - setattr(timeline.spaces.active.dopesheet, "filter_text", "ld") # type: ignore + timeline = next( + area + for area in cast(List[bpy.types.Area], bpy.context.screen.areas) + if area.ui_type == "TIMELINE" + ) + + space = cast(bpy.types.SpaceSequenceEditor, timeline.spaces.active) + space.show_seconds = True + + set_dopesheet_filter("control_frame") # follow default editor + + +def setup_animation_data(): + if not getattr(bpy.context.scene, "ld_anidata"): + set_pos_keyframes_from_state() + set_ctrl_keyframes_from_state() + setattr(bpy.context.scene, "ld_anidata", True) + else: + print("local animation data detected") + # update_rev_changes(state.pos_map, state.control_map) # TODO: test this + + +def check_local_object_list(): + data_objects = cast(Dict[str, bpy.types.Object], bpy.data.objects) + + for dancer_item in state.dancers_array: + dancer_name = dancer_item.name + if dancer_name not in bpy.data.objects.keys(): + return False + + dancer_parts = dancer_item.parts + dancer_index = dancer_name.split("_")[0] + for part_item in dancer_parts: + part_name = part_item.name + part_type = part_item.type + part_obj_name = f"{dancer_index}_{part_name}" + + match part_type: + case PartType.LED: + part_parent = data_objects.get(part_obj_name) + if part_parent is None: + return False + + if len(part_parent.children) != part_item.length: + return False + + case PartType.FIBER: + if part_obj_name not in data_objects.keys(): + return False + + return True async def load_data() -> None: assets_load = await fetch_data() - setup_assets(assets_load) - set_music_from_load(assets_load) - init_pos_keyframes_from_state() - init_ctrl_keyframes_from_state() + + setup_objects(assets_load) + setup_music(assets_load) + setup_animation_data() setup_viewport() - print("data loaded") + + print("Data loaded") diff --git a/editor-blender/core/actions/state/pos_map.py b/editor-blender/core/actions/state/pos_map.py index 43b15ad8a..4c0e5b44f 100644 --- a/editor-blender/core/actions/state/pos_map.py +++ b/editor-blender/core/actions/state/pos_map.py @@ -2,6 +2,11 @@ from ...states import state from ...utils.notification import notify from ...utils.ui import redraw_area +from ..property.animation_data import ( + add_single_pos_keyframe, + delete_single_pos_keyframe, + edit_single_pos_keyframe, +) from .current_pos import calculate_current_pos_index, update_current_pos_by_index @@ -83,15 +88,16 @@ def update_pos(id: MapID, frame: PosMapElement): def apply_pos_map_updates(): pos_map_updates = state.pos_map_updates - # TODO: Update animation data - for pos in pos_map_updates.added: + add_single_pos_keyframe(pos[0], pos[1]) state.pos_map[pos[0]] = pos[1] for pos in pos_map_updates.updated: + edit_single_pos_keyframe(pos[0], pos[1]) state.pos_map[pos[0]] = pos[1] for pos_id in pos_map_updates.deleted: + delete_single_pos_keyframe(pos_id) del state.pos_map[pos_id] pos_map_updates.added.clear() diff --git a/editor-blender/core/models/__init__.py b/editor-blender/core/models/__init__.py index aeb43a045..c46aea8f9 100644 --- a/editor-blender/core/models/__init__.py +++ b/editor-blender/core/models/__init__.py @@ -81,8 +81,8 @@ class Revision: class ControlMapElement: start: int fade: bool + rev: Revision status: ControlMapStatus - rev: Optional[Revision] = None ControlMap = Dict[MapID, ControlMapElement] @@ -103,8 +103,8 @@ class Location: @dataclass class PosMapElement: start: int + rev: Revision pos: PosMapStatus - rev: Optional[Revision] = None PosMap = Dict[MapID, PosMapElement] diff --git a/editor-blender/core/utils/convert.py b/editor-blender/core/utils/convert.py index f8a1264bb..bab345e04 100644 --- a/editor-blender/core/utils/convert.py +++ b/editor-blender/core/utils/convert.py @@ -83,9 +83,7 @@ def dancers_query_to_state(payload: QueryDancersPayload) -> DancersArray: def pos_frame_query_to_state(payload: QueryPosFrame) -> PosMapElement: - rev = None - if payload.rev is not None: - rev = Revision(meta=payload.rev.meta, data=payload.rev.data) + rev = Revision(meta=payload.rev.meta, data=payload.rev.data) pos_map_element = PosMapElement(start=payload.start, pos={}, rev=rev) pos_map_element.pos = pos_status_query_to_state(payload.pos) @@ -94,9 +92,7 @@ def pos_frame_query_to_state(payload: QueryPosFrame) -> PosMapElement: def pos_frame_sub_to_query(data: SubPositionFrame) -> QueryPosFrame: - rev = None - if data.rev is not None: - rev = QueryRevision(meta=data.rev.meta, data=data.rev.data) + rev = QueryRevision(meta=data.rev.meta, data=data.rev.data) response = QueryPosFrame(start=data.start, pos=[], rev=rev) response.pos = [(pos[0], pos[1], pos[2]) for pos in data.pos] @@ -171,9 +167,7 @@ def control_status_query_to_state( def control_frame_query_to_state(payload: QueryControlFrame) -> ControlMapElement: - rev = None - if payload.rev is not None: - rev = Revision(meta=payload.rev.meta, data=payload.rev.data) + rev = Revision(meta=payload.rev.meta, data=payload.rev.data) control_map_element = ControlMapElement( start=payload.start, fade=payload.fade, status={}, rev=rev @@ -194,9 +188,7 @@ def control_map_query_to_state(frames: QueryControlMapPayload) -> ControlMap: def control_frame_sub_to_query(data: SubControlFrame) -> QueryControlFrame: - rev = None - if data.rev is not None: - rev = QueryRevision(meta=data.rev.meta, data=data.rev.data) + rev = QueryRevision(meta=data.rev.meta, data=data.rev.data) response = QueryControlFrame(start=data.start, fade=data.fade, status=[], rev=rev) @@ -309,3 +301,13 @@ def rgb_to_float(rgb: Tuple[int, ...]) -> Tuple[float, ...]: def float_to_rgb(color_float: Tuple[float, ...]) -> Tuple[int, ...]: return tuple([round(color * 255) for color in color_float]) + + +def rgba_to_float(rgb: Union[Tuple[int, ...], List[int]], a: int) -> Tuple[float, ...]: + r, g, b = rgb + a_float = a / 255 + return ( + r / 255 * a_float, + g / 255 * a_float, + b / 255 * a_float, + ) diff --git a/editor-blender/graphqls/mutations.py b/editor-blender/graphqls/mutations.py index db63182fa..41d9195ef 100644 --- a/editor-blender/graphqls/mutations.py +++ b/editor-blender/graphqls/mutations.py @@ -208,7 +208,7 @@ class MutDeletePositionFrameResponse(JSONWizard): @dataclass class MutEditPositionFrameTimeInput(JSONWizard): - frameID: MapID + frameId: MapID start: int @@ -316,7 +316,7 @@ class MutDeleteControlFrameInput(JSONWizard): @dataclass class MutEditControlFrameTimeInput(JSONWizard): - frameID: MapID + frameId: MapID start: int diff --git a/editor-blender/graphqls/queries.py b/editor-blender/graphqls/queries.py index 38c610881..c50231f7b 100644 --- a/editor-blender/graphqls/queries.py +++ b/editor-blender/graphqls/queries.py @@ -188,8 +188,8 @@ class QueryRevision(JSONWizard): @dataclass class QueryPosFrame(JSONWizard): start: int + rev: QueryRevision pos: List[QueryCoordinatesPayload] - rev: Optional[QueryRevision] = None QueryPosMapPayload = Dict[ID, QueryPosFrame] @@ -236,8 +236,8 @@ class QueryPosMapData(JSONWizard): class QueryControlFrame(JSONWizard): start: int fade: bool + rev: QueryRevision status: List[QueryDancerStatusPayload] - rev: Optional[QueryRevision] = None QueryControlMapPayload = Dict[ID, QueryControlFrame] diff --git a/editor-blender/graphqls/subscriptions.py b/editor-blender/graphqls/subscriptions.py index f6d934938..eb21b9896 100644 --- a/editor-blender/graphqls/subscriptions.py +++ b/editor-blender/graphqls/subscriptions.py @@ -74,8 +74,8 @@ class SubPositionRecordData(JSONWizard): class SubPositionFrame(JSONWizard): start: int pos: List[SubPosition] + rev: SubRevision editing: Optional[str] = None - rev: Optional[SubRevision] = None @dataclass @@ -151,9 +151,9 @@ class SubControlRecordData(JSONWizard): class SubControlFrame(JSONWizard): fade: bool start: int + rev: SubRevision status: List[List[SubPartControl]] editing: Optional[str] = None - rev: Optional[SubRevision] = None @dataclass diff --git a/editor-blender/properties/__init__.py b/editor-blender/properties/__init__.py index 0daf6a724..c703c3c9f 100644 --- a/editor-blender/properties/__init__.py +++ b/editor-blender/properties/__init__.py @@ -1,4 +1,4 @@ -from . import color_palette, lights, objects, position, scene, timeline, ui +from . import color_palette, lights, objects, position, revision, scene, timeline, ui def register(): @@ -9,6 +9,7 @@ def register(): color_palette.register() timeline.register() scene.register() + revision.register() def unregister(): @@ -19,3 +20,4 @@ def unregister(): color_palette.unregister() timeline.unregister() scene.unregister() + revision.unregister() diff --git a/editor-blender/properties/lights.py b/editor-blender/properties/lights.py index 4c84b57ca..bd1d607d9 100644 --- a/editor-blender/properties/lights.py +++ b/editor-blender/properties/lights.py @@ -83,6 +83,14 @@ def register(): update=update_current_color, ), ) + setattr( + bpy.types.Object, + "ld_color_float", + bpy.props.FloatVectorProperty( + name="Color float", + description="Part fiber color", + ), + ) setattr( bpy.types.Object, "ld_effect", diff --git a/editor-blender/properties/revision.py b/editor-blender/properties/revision.py new file mode 100644 index 000000000..8eb47bf70 --- /dev/null +++ b/editor-blender/properties/revision.py @@ -0,0 +1,36 @@ +import bpy + + +class KeyframeRevisionItem(bpy.types.PropertyGroup): + frame_id: bpy.props.IntProperty() # type: ignore + frame_start: bpy.props.IntProperty() # type: ignore + meta: bpy.props.IntProperty(default=-1) # type: ignore + data: bpy.props.IntProperty(default=-1) # type: ignore + + +def register(): + bpy.utils.register_class(KeyframeRevisionItem) + setattr( + bpy.types.Scene, + "ld_pos_rev", + bpy.props.CollectionProperty(type=KeyframeRevisionItem), + ) + setattr( + bpy.types.Scene, + "ld_ctrl_rev", + bpy.props.CollectionProperty(type=KeyframeRevisionItem), + ) + setattr(bpy.types.Scene, "ld_anidata", bpy.props.BoolProperty(default=False)) + + +def unregister(): + bpy.utils.unregister_class(KeyframeRevisionItem) + delattr( + bpy.types.Scene, + "ld_pos_rev", + ) + delattr( + bpy.types.Scene, + "ld_ctrl_rev", + ) + delattr(bpy.types.Scene, "ld_anidata") diff --git a/editor-blender/properties/types.py b/editor-blender/properties/types.py index a0bda3105..7cc0ff365 100644 --- a/editor-blender/properties/types.py +++ b/editor-blender/properties/types.py @@ -30,3 +30,13 @@ class ColorPaletteItemType: ColorPaletteType = List[ColorPaletteItemType] + + +class RevisionPropertyItemType: + frame_id: int + frame_start: int + meta: int + data: int + + +RevisionPropertyType = List[RevisionPropertyItemType] diff --git a/files/asset/models/0_agent.draco.glb b/files/asset/models/0_agent.draco.glb index 23288d191360e5e9ecd026a187b3e22c287320c5..510aa22ac3ae0da584390bacf9186a54c518f049 100644 GIT binary patch delta 49428 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

>@ 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 KjMX`Yb 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

_c0aixe#IVA-yaP?%GyeJ+29!fk`a0VKvLJdHl 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 S!Bd;ambX{Ls@nzey#EE@qzOy_ delta 69535 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 diff --git a/files/asset/models/1_hank.draco.glb b/files/asset/models/1_hank.draco.glb index e967558680d402bf360f7e8e70f3baaf35d068e3..1f9d8d0c4040768e136b9d2c01efbd4cd1e98819 100644 GIT binary patch delta 3189 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 Y&VB|qT|xeN`8MFEYeD%oi&3Hf2fE)`!T<mO delta 4285 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 K-d@?>UHd1)JU52` diff --git a/files/asset/models/1_hank.glb b/files/asset/models/1_hank.glb index f5283ab12994c86b6ead4c52c4d492733cb554b1..9f23b48942b947261114d3debe160f8bc5b81a9d 100644 GIT binary patch delta 2959 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 delta 3883 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 OOMXnO3EVBo6#WUu%%q0^ diff --git a/utils/generateInitialExport.js b/utils/generateInitialExport.js index e1f67b1c9..03c5746aa 100644 --- a/utils/generateInitialExport.js +++ b/utils/generateInitialExport.js @@ -25,9 +25,9 @@ const io = new NodeIO(); const modelPartsCache = new Map(); -async function getParts(modelPath, dancerName, modelName) { - if (modelPartsCache.has(modelPath)) { - return modelPartsCache.get(modelPath); +async function getParts(modelPath, modelName) { + if (modelPartNameCache.has(modelPath)) { + return modelPartNameCache.get(modelPath); } const document = await io.read(modelPath); // → Document @@ -38,7 +38,7 @@ async function getParts(modelPath, dancerName, modelName) { // remove dancer root object .filter((name) => name !== modelName) // drop first '_' - .map((name) => name.split("_").slice(1).join("_")) + // .map((name) => name.split("_").slice(1).join("_")) // drop after '.' .map((name) => name.split(".")[0]) // remove duplicates @@ -61,9 +61,9 @@ async function getParts(modelPath, dancerName, modelName) { const LEDs = root .listNodes() .map((node) => node.getName()) - .filter((name) => name.includes("_LED.")) + .filter((name) => name.includes("_LED.")); // drop first '_' - .map((name) => name.split("_").slice(1).join("_")); + // .map((name) => name.split("_").slice(1).join("_")); const LEDcounter = LEDs.reduce((acc, LEDname) => { const partName = LEDname.split(".")[0]; @@ -195,7 +195,7 @@ function generateEmptyLEDEffects(modelParts) { return { name: dancerName, model: modelName, - parts: await getParts(modelUrl, dancerName, modelName), + parts: await getParts(modelUrl, modelName), }; }) ); diff --git a/utils/jsons/exportDataEmpty.json b/utils/jsons/exportDataEmpty.json index e22099ab6..0967ef424 100644 --- a/utils/jsons/exportDataEmpty.json +++ b/utils/jsons/exportDataEmpty.json @@ -1,5176 +1 @@ -{ - "dancer": [ - { - "name": "0_agent", - "model": "0_agent", - "parts": [ - { - "name": "arm_inner_left", - "type": "FIBER" - }, - { - "name": "arm_inner_right", - "type": "FIBER" - }, - { - "name": "arm_outer_left", - "type": "FIBER" - }, - { - "name": "arm_outer_right", - "type": "FIBER" - }, - { - "name": "beret", - "type": "FIBER" - }, - { - "name": "brim", - "type": "FIBER" - }, - { - "name": "collar_back", - "type": "FIBER" - }, - { - "name": "collar_left", - "type": "FIBER" - }, - { - "name": "collar_right", - "type": "FIBER" - }, - { - "name": "hem", - "type": "FIBER" - }, - { - "name": "lapel_left", - "type": "FIBER" - }, - { - "name": "lapel_right", - "type": "FIBER" - }, - { - "name": "leg_back_left", - "type": "FIBER" - }, - { - "name": "leg_back_right", - "type": "FIBER" - }, - { - "name": "leg_front_left", - "type": "FIBER" - }, - { - "name": "leg_front_right", - "type": "FIBER" - }, - { - "name": "leg_inner_left", - "type": "FIBER" - }, - { - "name": "leg_inner_right", - "type": "FIBER" - }, - { - "name": "leg_outer_left", - "type": "FIBER" - }, - { - "name": "leg_outer_right", - "type": "FIBER" - }, - { - "name": "pocket", - "type": "FIBER" - }, - { - "name": "waist_left", - "type": "FIBER" - }, - { - "name": "waist_right", - "type": "FIBER" - }, - { - "name": "buttons_LED", - "type": "LED", - "length": 8 - }, - { - "name": "glasses_LED", - "type": "LED", - "length": 25 - }, - { - "name": "glove_left_LED", - "type": "LED", - "length": 42 - }, - { - "name": "glove_right_LED", - "type": "LED", - "length": 42 - }, - { - "name": "oxford_left_LED", - "type": "LED", - "length": 77 - }, - { - "name": "oxford_right_LED", - "type": "LED", - "length": 77 - }, - { - "name": "tie_LED", - "type": "LED", - "length": 73 - } - ] - }, - { - "name": "1_hank", - "model": "1_hank", - "parts": [ - { - "name": "arm_inner_left", - "type": "FIBER" - }, - { - "name": "arm_inner_right", - "type": "FIBER" - }, - { - "name": "arm_outer_left", - "type": "FIBER" - }, - { - "name": "arm_outer_right", - "type": "FIBER" - }, - { - "name": "beret", - "type": "FIBER" - }, - { - "name": "brim", - "type": "FIBER" - }, - { - "name": "collar_back", - "type": "FIBER" - }, - { - "name": "collar_left", - "type": "FIBER" - }, - { - "name": "collar_right", - "type": "FIBER" - }, - { - "name": "hem", - "type": "FIBER" - }, - { - "name": "lapel_left", - "type": "FIBER" - }, - { - "name": "lapel_right", - "type": "FIBER" - }, - { - "name": "leg_back_left", - "type": "FIBER" - }, - { - "name": "leg_back_right", - "type": "FIBER" - }, - { - "name": "leg_front_left", - "type": "FIBER" - }, - { - "name": "leg_front_right", - "type": "FIBER" - }, - { - "name": "leg_inner_left", - "type": "FIBER" - }, - { - "name": "leg_inner_right", - "type": "FIBER" - }, - { - "name": "leg_outer_left", - "type": "FIBER" - }, - { - "name": "leg_outer_right", - "type": "FIBER" - }, - { - "name": "pocket", - "type": "FIBER" - }, - { - "name": "waist_left", - "type": "FIBER" - }, - { - "name": "waist_right", - "type": "FIBER" - }, - { - "name": "buttons_LED", - "type": "LED", - "length": 8 - }, - { - "name": "glasses_LED", - "type": "LED", - "length": 25 - }, - { - "name": "glove_left_LED", - "type": "LED", - "length": 42 - }, - { - "name": "glove_right_LED", - "type": "LED", - "length": 42 - }, - { - "name": "oxford_left_LED", - "type": "LED", - "length": 77 - }, - { - "name": "oxford_right_LED", - "type": "LED", - "length": 77 - }, - { - "name": "tie_LED", - "type": "LED", - "length": 73 - } - ] - }, - { - "name": "2_henning", - "model": "0_agent", - "parts": [ - { - "name": "arm_inner_left", - "type": "FIBER" - }, - { - "name": "arm_inner_right", - "type": "FIBER" - }, - { - "name": "arm_outer_left", - "type": "FIBER" - }, - { - "name": "arm_outer_right", - "type": "FIBER" - }, - { - "name": "beret", - "type": "FIBER" - }, - { - "name": "brim", - "type": "FIBER" - }, - { - "name": "collar_back", - "type": "FIBER" - }, - { - "name": "collar_left", - "type": "FIBER" - }, - { - "name": "collar_right", - "type": "FIBER" - }, - { - "name": "hem", - "type": "FIBER" - }, - { - "name": "lapel_left", - "type": "FIBER" - }, - { - "name": "lapel_right", - "type": "FIBER" - }, - { - "name": "leg_back_left", - "type": "FIBER" - }, - { - "name": "leg_back_right", - "type": "FIBER" - }, - { - "name": "leg_front_left", - "type": "FIBER" - }, - { - "name": "leg_front_right", - "type": "FIBER" - }, - { - "name": "leg_inner_left", - "type": "FIBER" - }, - { - "name": "leg_inner_right", - "type": "FIBER" - }, - { - "name": "leg_outer_left", - "type": "FIBER" - }, - { - "name": "leg_outer_right", - "type": "FIBER" - }, - { - "name": "pocket", - "type": "FIBER" - }, - { - "name": "waist_left", - "type": "FIBER" - }, - { - "name": "waist_right", - "type": "FIBER" - }, - { - "name": "buttons_LED", - "type": "LED", - "length": 8 - }, - { - "name": "glasses_LED", - "type": "LED", - "length": 25 - }, - { - "name": "glove_left_LED", - "type": "LED", - "length": 42 - }, - { - "name": "glove_right_LED", - "type": "LED", - "length": 42 - }, - { - "name": "oxford_left_LED", - "type": "LED", - "length": 77 - }, - { - "name": "oxford_right_LED", - "type": "LED", - "length": 77 - }, - { - "name": "tie_LED", - "type": "LED", - "length": 73 - } - ] - } - ], - "control": { - "1": { - "fade": false, - "start": 0, - "status": [ - [ - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10] - ], - [ - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10] - ], - [ - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["black", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10], - ["", 10] - ] - ] - }, - "2": { - "fade": false, - "start": 1000, - "status": [ - [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10] - ], - [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10] - ], - [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10], - ["all_white", 10] - ] - ] - }, - "3": { - "fade": false, - "start": 2000, - "status": [ - [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10] - ], - [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10] - ], - [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10], - ["all_red", 10] - ] - ] - }, - "4": { - "fade": false, - "start": 3000, - "status": [ - [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10] - ], - [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10] - ], - [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10], - ["all_green", 10] - ] - ] - }, - "5": { - "fade": false, - "start": 4000, - "status": [ - [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10] - ], - [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10] - ], - [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10], - ["all_blue", 10] - ] - ] - } - }, - "position": { - "1": { - "start": 0, - "pos": [ - [-3, 0, 0], - [0, 0, 0], - [3, 0, 0] - ] - } - }, - "color": { - "black": [0, 0, 0], - "white": [255, 255, 255], - "red": [255, 0, 0], - "green": [0, 255, 0], - "blue": [0, 0, 255] - }, - "LEDEffects": { - "0_agent": { - "buttons_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "glasses_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "glove_left_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "glove_right_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "oxford_left_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "oxford_right_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "tie_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - } - }, - "1_hank": { - "buttons_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "glasses_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "glove_left_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "glove_right_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "oxford_left_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "oxford_right_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - }, - "tie_LED": { - "all_black": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0], - ["black", 0] - ] - } - ] - }, - "all_white": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10], - ["white", 10] - ] - } - ] - }, - "all_red": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10], - ["red", 10] - ] - } - ] - }, - "all_green": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10], - ["green", 10] - ] - } - ] - }, - "all_blue": { - "repeat": 0, - "frames": [ - { - "start": 0, - "fade": false, - "LEDs": [ - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10], - ["blue", 10] - ] - } - ] - } - } - } - } -} +{}