@dpantani/tdmcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +413 -0
- package/dist/cli/agent.d.ts +466 -0
- package/dist/cli/agent.js +1902 -0
- package/dist/cli/agent.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4375 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/data/glsl.json +1 -0
- package/dist/knowledge/data/meta.json +1 -0
- package/dist/knowledge/data/operators/ableton_link_chop.json +1322 -0
- package/dist/knowledge/data/operators/accumulate_pop.json +912 -0
- package/dist/knowledge/data/operators/actor_comp.json +7477 -0
- package/dist/knowledge/data/operators/add_sop.json +946 -0
- package/dist/knowledge/data/operators/add_top.json +1653 -0
- package/dist/knowledge/data/operators/alembic_sop.json +521 -0
- package/dist/knowledge/data/operators/align_sop.json +949 -0
- package/dist/knowledge/data/operators/ambient_light_comp.json +1698 -0
- package/dist/knowledge/data/operators/analyze_chop.json +710 -0
- package/dist/knowledge/data/operators/analyze_pop.json +698 -0
- package/dist/knowledge/data/operators/analyze_top.json +1276 -0
- package/dist/knowledge/data/operators/angle_chop.json +711 -0
- package/dist/knowledge/data/operators/animation_comp.json +2448 -0
- package/dist/knowledge/data/operators/annotate_comp.json +2913 -0
- package/dist/knowledge/data/operators/anti_alias_top.json +1278 -0
- package/dist/knowledge/data/operators/arm_sop.json +1747 -0
- package/dist/knowledge/data/operators/art-net_dat.json +472 -0
- package/dist/knowledge/data/operators/attribute_chop.json +617 -0
- package/dist/knowledge/data/operators/attribute_combine_pop.json +596 -0
- package/dist/knowledge/data/operators/attribute_convert_pop.json +462 -0
- package/dist/knowledge/data/operators/attribute_create_sop.json +191 -0
- package/dist/knowledge/data/operators/attribute_pop.json +1078 -0
- package/dist/knowledge/data/operators/attribute_sop.json +429 -0
- package/dist/knowledge/data/operators/audio_band_eq_chop.json +1228 -0
- package/dist/knowledge/data/operators/audio_binaural_chop.json +711 -0
- package/dist/knowledge/data/operators/audio_device_in_chop.json +1793 -0
- package/dist/knowledge/data/operators/audio_device_out_chop.json +1840 -0
- package/dist/knowledge/data/operators/audio_devices_dat.json +616 -0
- package/dist/knowledge/data/operators/audio_dynamics_chop.json +1132 -0
- package/dist/knowledge/data/operators/audio_file_in_chop.json +1605 -0
- package/dist/knowledge/data/operators/audio_file_out_chop.json +945 -0
- package/dist/knowledge/data/operators/audio_filter_chop.json +850 -0
- package/dist/knowledge/data/operators/audio_movie_chop.json +851 -0
- package/dist/knowledge/data/operators/audio_ndi_chop.json +526 -0
- package/dist/knowledge/data/operators/audio_oscillator_chop.json +1087 -0
- package/dist/knowledge/data/operators/audio_para_eq_chop.json +1276 -0
- package/dist/knowledge/data/operators/audio_play_chop.json +1744 -0
- package/dist/knowledge/data/operators/audio_render_chop.json +754 -0
- package/dist/knowledge/data/operators/audio_spectrum_chop.json +850 -0
- package/dist/knowledge/data/operators/audio_stream_in_chop.json +1039 -0
- package/dist/knowledge/data/operators/audio_stream_out_chop.json +806 -0
- package/dist/knowledge/data/operators/audio_vst_chop.json +1419 -0
- package/dist/knowledge/data/operators/audio_web_render_chop.json +523 -0
- package/dist/knowledge/data/operators/base_comp.json +1180 -0
- package/dist/knowledge/data/operators/basis_sop.json +805 -0
- package/dist/knowledge/data/operators/beat_chop.json +1745 -0
- package/dist/knowledge/data/operators/bind_chop.json +613 -0
- package/dist/knowledge/data/operators/blacktrax_chop.json +1180 -0
- package/dist/knowledge/data/operators/blend_chop.json +616 -0
- package/dist/knowledge/data/operators/blend_comp.json +3626 -0
- package/dist/knowledge/data/operators/blend_pop.json +618 -0
- package/dist/knowledge/data/operators/blend_sop.json +477 -0
- package/dist/knowledge/data/operators/blob_track_chop.json +1275 -0
- package/dist/knowledge/data/operators/blob_track_top.json +1931 -0
- package/dist/knowledge/data/operators/bloom_top.json +1370 -0
- package/dist/knowledge/data/operators/blur_top.json +1428 -0
- package/dist/knowledge/data/operators/body_track_chop.json +1233 -0
- package/dist/knowledge/data/operators/bone_comp.json +3672 -0
- package/dist/knowledge/data/operators/bone_group_sop.json +148 -0
- package/dist/knowledge/data/operators/boolean_sop.json +336 -0
- package/dist/knowledge/data/operators/box_pop.json +827 -0
- package/dist/knowledge/data/operators/box_sop.json +994 -0
- package/dist/knowledge/data/operators/bridge_sop.json +806 -0
- package/dist/knowledge/data/operators/bullet_solver_chop.json +898 -0
- package/dist/knowledge/data/operators/bullet_solver_comp.json +3720 -0
- package/dist/knowledge/data/operators/button_comp.json +6636 -0
- package/dist/knowledge/data/operators/cache_blend_pop.json +292 -0
- package/dist/knowledge/data/operators/cache_pop.json +412 -0
- package/dist/knowledge/data/operators/cache_select_pop.json +280 -0
- package/dist/knowledge/data/operators/cache_select_top.json +946 -0
- package/dist/knowledge/data/operators/cache_sop.json +478 -0
- package/dist/knowledge/data/operators/cache_top.json +1559 -0
- package/dist/knowledge/data/operators/camera_blend_comp.json +4847 -0
- package/dist/knowledge/data/operators/camera_comp.json +215 -0
- package/dist/knowledge/data/operators/cap_sop.json +527 -0
- package/dist/knowledge/data/operators/capture_region_sop.json +568 -0
- package/dist/knowledge/data/operators/capture_sop.json +619 -0
- package/dist/knowledge/data/operators/carve_sop.json +902 -0
- package/dist/knowledge/data/operators/channel_mix_top.json +1088 -0
- package/dist/knowledge/data/operators/chop_execute_dat.json +1277 -0
- package/dist/knowledge/data/operators/chop_to_dat.json +571 -0
- package/dist/knowledge/data/operators/chop_to_pop.json +1236 -0
- package/dist/knowledge/data/operators/chop_to_sop.json +714 -0
- package/dist/knowledge/data/operators/chop_to_top.json +1231 -0
- package/dist/knowledge/data/operators/chroma_key_top.json +1653 -0
- package/dist/knowledge/data/operators/circle_pop.json +821 -0
- package/dist/knowledge/data/operators/circle_sop.json +991 -0
- package/dist/knowledge/data/operators/circle_top.json +2307 -0
- package/dist/knowledge/data/operators/clay_sop.json +1231 -0
- package/dist/knowledge/data/operators/clip_blender_chop.json +1931 -0
- package/dist/knowledge/data/operators/clip_chop.json +1366 -0
- package/dist/knowledge/data/operators/clip_dat.json +849 -0
- package/dist/knowledge/data/operators/clip_sop.json +475 -0
- package/dist/knowledge/data/operators/clock_chop.json +1792 -0
- package/dist/knowledge/data/operators/composite_chop.json +1414 -0
- package/dist/knowledge/data/operators/composite_top.json +2131 -0
- package/dist/knowledge/data/operators/connectivity_pop.json +11 -0
- package/dist/knowledge/data/operators/constant_chop.json +1238 -0
- package/dist/knowledge/data/operators/constant_mat.json +2727 -0
- package/dist/knowledge/data/operators/constant_top.json +1323 -0
- package/dist/knowledge/data/operators/constraint_comp.json +2076 -0
- package/dist/knowledge/data/operators/container_comp.json +6299 -0
- package/dist/knowledge/data/operators/convert_dat.json +569 -0
- package/dist/knowledge/data/operators/convert_pop.json +322 -0
- package/dist/knowledge/data/operators/convert_sop.json +807 -0
- package/dist/knowledge/data/operators/convolve_top.json +1041 -0
- package/dist/knowledge/data/operators/copy_chop.json +993 -0
- package/dist/knowledge/data/operators/copy_pop.json +1799 -0
- package/dist/knowledge/data/operators/copy_sop.json +1887 -0
- package/dist/knowledge/data/operators/corner_pin_top.json +1512 -0
- package/dist/knowledge/data/operators/count_chop.json +1369 -0
- package/dist/knowledge/data/operators/cplusplus_chop.json +569 -0
- package/dist/knowledge/data/operators/cplusplus_dat.json +477 -0
- package/dist/knowledge/data/operators/cplusplus_pop.json +308 -0
- package/dist/knowledge/data/operators/cplusplus_sop.json +195 -0
- package/dist/knowledge/data/operators/cplusplus_top.json +1276 -0
- package/dist/knowledge/data/operators/creep_sop.json +385 -0
- package/dist/knowledge/data/operators/crop_top.json +1323 -0
- package/dist/knowledge/data/operators/cross_chop.json +478 -0
- package/dist/knowledge/data/operators/cross_top.json +1559 -0
- package/dist/knowledge/data/operators/cube_map_top.json +946 -0
- package/dist/knowledge/data/operators/curve_pop.json +1525 -0
- package/dist/knowledge/data/operators/curveclay_sop.json +618 -0
- package/dist/knowledge/data/operators/curvesect_sop.json +665 -0
- package/dist/knowledge/data/operators/cycle_chop.json +1040 -0
- package/dist/knowledge/data/operators/dat_execute_dat.json +1230 -0
- package/dist/knowledge/data/operators/dat_to_chop.json +1510 -0
- package/dist/knowledge/data/operators/dat_to_pop.json +756 -0
- package/dist/knowledge/data/operators/dat_to_sop.json +902 -0
- package/dist/knowledge/data/operators/deform_sop.json +291 -0
- package/dist/knowledge/data/operators/delay_chop.json +615 -0
- package/dist/knowledge/data/operators/delete_chop.json +1556 -0
- package/dist/knowledge/data/operators/delete_pop.json +1422 -0
- package/dist/knowledge/data/operators/delete_sop.json +1230 -0
- package/dist/knowledge/data/operators/depth_mat.json +1933 -0
- package/dist/knowledge/data/operators/depth_top.json +1322 -0
- package/dist/knowledge/data/operators/difference_top.json +1647 -0
- package/dist/knowledge/data/operators/dimension_pop.json +280 -0
- package/dist/knowledge/data/operators/direct_display_out_top.json +997 -0
- package/dist/knowledge/data/operators/directx_in_top.json +901 -0
- package/dist/knowledge/data/operators/directx_out_top.json +948 -0
- package/dist/knowledge/data/operators/displace_top.json +1322 -0
- package/dist/knowledge/data/operators/divide_sop.json +713 -0
- package/dist/knowledge/data/operators/dmx_fixture_pop.json +772 -0
- package/dist/knowledge/data/operators/dmx_in_chop.json +1420 -0
- package/dist/knowledge/data/operators/dmx_map_dat.json +11 -0
- package/dist/knowledge/data/operators/dmx_out_chop.json +1843 -0
- package/dist/knowledge/data/operators/dmx_out_pop.json +668 -0
- package/dist/knowledge/data/operators/edge_top.json +1370 -0
- package/dist/knowledge/data/operators/emboss_top.json +1275 -0
- package/dist/knowledge/data/operators/engine_comp.json +2685 -0
- package/dist/knowledge/data/operators/envelope_chop.json +946 -0
- package/dist/knowledge/data/operators/environment_light_comp.json +2121 -0
- package/dist/knowledge/data/operators/error_dat.json +949 -0
- package/dist/knowledge/data/operators/etherdream_dat.json +472 -0
- package/dist/knowledge/data/operators/evaluate_dat.json +1650 -0
- package/dist/knowledge/data/operators/event_chop.json +1653 -0
- package/dist/knowledge/data/operators/examine_dat.json +1182 -0
- package/dist/knowledge/data/operators/execute_dat.json +1184 -0
- package/dist/knowledge/data/operators/experimental +0 -0
- package/dist/knowledge/data/operators/expression_chop.json +617 -0
- package/dist/knowledge/data/operators/extend_chop.json +617 -0
- package/dist/knowledge/data/operators/extrude_pop.json +316 -0
- package/dist/knowledge/data/operators/extrude_sop.json +1081 -0
- package/dist/knowledge/data/operators/face_track_chop.json +998 -0
- package/dist/knowledge/data/operators/face_track_sop.json +244 -0
- package/dist/knowledge/data/operators/facet_pop.json +480 -0
- package/dist/knowledge/data/operators/facet_sop.json +619 -0
- package/dist/knowledge/data/operators/fan_chop.json +804 -0
- package/dist/knowledge/data/operators/fbx_comp.json +4942 -0
- package/dist/knowledge/data/operators/feedback_chop.json +664 -0
- package/dist/knowledge/data/operators/feedback_pop.json +368 -0
- package/dist/knowledge/data/operators/feedback_top.json +191 -0
- package/dist/knowledge/data/operators/field_pop.json +2304 -0
- package/dist/knowledge/data/operators/fifo_dat.json +711 -0
- package/dist/knowledge/data/operators/file_in_chop.json +1181 -0
- package/dist/knowledge/data/operators/file_in_dat.json +527 -0
- package/dist/knowledge/data/operators/file_in_pop.json +298 -0
- package/dist/knowledge/data/operators/file_in_sop.json +289 -0
- package/dist/knowledge/data/operators/file_out_chop.json +618 -0
- package/dist/knowledge/data/operators/file_out_dat.json +524 -0
- package/dist/knowledge/data/operators/fillet_sop.json +949 -0
- package/dist/knowledge/data/operators/filter_chop.json +1134 -0
- package/dist/knowledge/data/operators/fit_sop.json +1087 -0
- package/dist/knowledge/data/operators/fit_top.json +1559 -0
- package/dist/knowledge/data/operators/flip_top.json +1040 -0
- package/dist/knowledge/data/operators/folder_dat.json +1888 -0
- package/dist/knowledge/data/operators/force_comp.json +1701 -0
- package/dist/knowledge/data/operators/force_pop.json +878 -0
- package/dist/knowledge/data/operators/force_sop.json +429 -0
- package/dist/knowledge/data/operators/fractal_sop.json +479 -0
- package/dist/knowledge/data/operators/freed_in_chop.json +808 -0
- package/dist/knowledge/data/operators/freed_out_chop.json +714 -0
- package/dist/knowledge/data/operators/function_chop.json +1086 -0
- package/dist/knowledge/data/operators/function_top.json +1558 -0
- package/dist/knowledge/data/operators/geo_text_comp.json +7338 -0
- package/dist/knowledge/data/operators/geometry_comp.json +199 -0
- package/dist/knowledge/data/operators/gesture_chop.json +1133 -0
- package/dist/knowledge/data/operators/glsl_advanced_pop.json +3539 -0
- package/dist/knowledge/data/operators/glsl_comp.json +6962 -0
- package/dist/knowledge/data/operators/glsl_copy_pop.json +2128 -0
- package/dist/knowledge/data/operators/glsl_mat.json +3720 -0
- package/dist/knowledge/data/operators/glsl_multi_top.json +2922 -0
- package/dist/knowledge/data/operators/glsl_pop.json +2317 -0
- package/dist/knowledge/data/operators/glsl_select_pop.json +280 -0
- package/dist/knowledge/data/operators/glsl_top.json +2922 -0
- package/dist/knowledge/data/operators/grid_pop.json +1029 -0
- package/dist/knowledge/data/operators/grid_sop.json +1041 -0
- package/dist/knowledge/data/operators/group_pop.json +1423 -0
- package/dist/knowledge/data/operators/group_sop.json +2075 -0
- package/dist/knowledge/data/operators/handle_chop.json +712 -0
- package/dist/knowledge/data/operators/handle_comp.json +2171 -0
- package/dist/knowledge/data/operators/histogram_pop.json +533 -0
- package/dist/knowledge/data/operators/hog_chop.json +620 -0
- package/dist/knowledge/data/operators/hokuyo_chop.json +941 -0
- package/dist/knowledge/data/operators/hold_chop.json +664 -0
- package/dist/knowledge/data/operators/hole_sop.json +291 -0
- package/dist/knowledge/data/operators/hsv_adjust_top.json +1370 -0
- package/dist/knowledge/data/operators/hsv_to_rgb_top.json +847 -0
- package/dist/knowledge/data/operators/import_select_chop.json +1838 -0
- package/dist/knowledge/data/operators/import_select_pop.json +808 -0
- package/dist/knowledge/data/operators/import_select_sop.json +1463 -0
- package/dist/knowledge/data/operators/import_select_top.json +993 -0
- package/dist/knowledge/data/operators/impulse_force_comp.json +1415 -0
- package/dist/knowledge/data/operators/in_chop.json +572 -0
- package/dist/knowledge/data/operators/in_dat.json +386 -0
- package/dist/knowledge/data/operators/in_mat.json +1559 -0
- package/dist/knowledge/data/operators/in_pop.json +280 -0
- package/dist/knowledge/data/operators/in_sop.json +102 -0
- package/dist/knowledge/data/operators/in_top.json +903 -0
- package/dist/knowledge/data/operators/index.json +1 -0
- package/dist/knowledge/data/operators/indices_dat.json +526 -0
- package/dist/knowledge/data/operators/info_chop.json +757 -0
- package/dist/knowledge/data/operators/info_dat.json +430 -0
- package/dist/knowledge/data/operators/insert_dat.json +896 -0
- package/dist/knowledge/data/operators/inside_top.json +1652 -0
- package/dist/knowledge/data/operators/interpolate_chop.json +711 -0
- package/dist/knowledge/data/operators/inverse_curve_chop.json +898 -0
- package/dist/knowledge/data/operators/inverse_curve_sop.json +97 -0
- package/dist/knowledge/data/operators/inverse_kin_chop.json +850 -0
- package/dist/knowledge/data/operators/iso_surface_sop.json +337 -0
- package/dist/knowledge/data/operators/join_chop.json +1368 -0
- package/dist/knowledge/data/operators/join_sop.json +667 -0
- package/dist/knowledge/data/operators/joint_sop.json +573 -0
- package/dist/knowledge/data/operators/joystick_chop.json +1558 -0
- package/dist/knowledge/data/operators/json_dat.json +619 -0
- package/dist/knowledge/data/operators/keyboard_in_chop.json +1041 -0
- package/dist/knowledge/data/operators/keyboard_in_dat.json +950 -0
- package/dist/knowledge/data/operators/keyframe_chop.json +711 -0
- package/dist/knowledge/data/operators/kinect_azure_chop.json +1092 -0
- package/dist/knowledge/data/operators/kinect_azure_select_top.json +1187 -0
- package/dist/knowledge/data/operators/kinect_azure_top.json +2737 -0
- package/dist/knowledge/data/operators/kinect_chop.json +1700 -0
- package/dist/knowledge/data/operators/kinect_sop.json +379 -0
- package/dist/knowledge/data/operators/kinect_top.json +1700 -0
- package/dist/knowledge/data/operators/lag_chop.json +1040 -0
- package/dist/knowledge/data/operators/laser_chop.json +1746 -0
- package/dist/knowledge/data/operators/laser_device_chop.json +1228 -0
- package/dist/knowledge/data/operators/lattice_sop.json +432 -0
- package/dist/knowledge/data/operators/layout_top.json +1936 -0
- package/dist/knowledge/data/operators/leap_motion_chop.json +1699 -0
- package/dist/knowledge/data/operators/leap_motion_top.json +1323 -0
- package/dist/knowledge/data/operators/lens_distort_top.json +2262 -0
- package/dist/knowledge/data/operators/leuze_rod4_chop.json +1371 -0
- package/dist/knowledge/data/operators/level_top.json +2273 -0
- package/dist/knowledge/data/operators/lfo_chop.json +1088 -0
- package/dist/knowledge/data/operators/light_comp.json +5410 -0
- package/dist/knowledge/data/operators/limit_chop.json +1133 -0
- package/dist/knowledge/data/operators/limit_pop.json +1243 -0
- package/dist/knowledge/data/operators/limit_sop.json +2075 -0
- package/dist/knowledge/data/operators/limit_top.json +1557 -0
- package/dist/knowledge/data/operators/line_break_pop.json +447 -0
- package/dist/knowledge/data/operators/line_divide_pop.json +688 -0
- package/dist/knowledge/data/operators/line_mat.json +5551 -0
- package/dist/knowledge/data/operators/line_metrics_pop.json +548 -0
- package/dist/knowledge/data/operators/line_pop.json +1343 -0
- package/dist/knowledge/data/operators/line_smooth_pop.json +1028 -0
- package/dist/knowledge/data/operators/line_sop.json +330 -0
- package/dist/knowledge/data/operators/line_thick_sop.json +478 -0
- package/dist/knowledge/data/operators/list_comp.json +6729 -0
- package/dist/knowledge/data/operators/lod_sop.json +431 -0
- package/dist/knowledge/data/operators/logic_chop.json +946 -0
- package/dist/knowledge/data/operators/lookup_attribute_pop.json +684 -0
- package/dist/knowledge/data/operators/lookup_channel_pop.json +1140 -0
- package/dist/knowledge/data/operators/lookup_chop.json +992 -0
- package/dist/knowledge/data/operators/lookup_dat.json +664 -0
- package/dist/knowledge/data/operators/lookup_texture_pop.json +1494 -0
- package/dist/knowledge/data/operators/lookup_top.json +1510 -0
- package/dist/knowledge/data/operators/lsystem_sop.json +1699 -0
- package/dist/knowledge/data/operators/ltc_in_chop.json +760 -0
- package/dist/knowledge/data/operators/ltc_out_chop.json +1512 -0
- package/dist/knowledge/data/operators/luma_blur_top.json +1316 -0
- package/dist/knowledge/data/operators/luma_level_top.json +1746 -0
- package/dist/knowledge/data/operators/magnet_sop.json +759 -0
- package/dist/knowledge/data/operators/material_sop.json +98 -0
- package/dist/knowledge/data/operators/math_chop.json +1193 -0
- package/dist/knowledge/data/operators/math_combine_pop.json +4283 -0
- package/dist/knowledge/data/operators/math_mix_pop.json +2641 -0
- package/dist/knowledge/data/operators/math_pop.json +2163 -0
- package/dist/knowledge/data/operators/math_top.json +1885 -0
- package/dist/knowledge/data/operators/matte_top.json +994 -0
- package/dist/knowledge/data/operators/media_file_info_dat.json +571 -0
- package/dist/knowledge/data/operators/merge_chop.json +627 -0
- package/dist/knowledge/data/operators/merge_dat.json +620 -0
- package/dist/knowledge/data/operators/merge_pop.json +764 -0
- package/dist/knowledge/data/operators/merge_sop.json +100 -0
- package/dist/knowledge/data/operators/metaball_sop.json +476 -0
- package/dist/knowledge/data/operators/midi_event_dat.json +1135 -0
- package/dist/knowledge/data/operators/midi_in_chop.json +3297 -0
- package/dist/knowledge/data/operators/midi_in_dat.json +1183 -0
- package/dist/knowledge/data/operators/midi_in_map_chop.json +946 -0
- package/dist/knowledge/data/operators/midi_out_chop.json +1793 -0
- package/dist/knowledge/data/operators/mirror_top.json +1271 -0
- package/dist/knowledge/data/operators/model_sop.json +52 -0
- package/dist/knowledge/data/operators/monitors_dat.json +617 -0
- package/dist/knowledge/data/operators/monochrome_top.json +1041 -0
- package/dist/knowledge/data/operators/mosys_chop.json +804 -0
- package/dist/knowledge/data/operators/mosys_top.json +896 -0
- package/dist/knowledge/data/operators/mouse_in_chop.json +1275 -0
- package/dist/knowledge/data/operators/mouse_out_chop.json +711 -0
- package/dist/knowledge/data/operators/movie_file_in_top.json +3546 -0
- package/dist/knowledge/data/operators/movie_file_out_top.json +3390 -0
- package/dist/knowledge/data/operators/mpcdi_dat.json +711 -0
- package/dist/knowledge/data/operators/mpcdi_top.json +1369 -0
- package/dist/knowledge/data/operators/mqtt_client_dat.json +1229 -0
- package/dist/knowledge/data/operators/multi_touch_in_dat.json +1185 -0
- package/dist/knowledge/data/operators/multiply_top.json +1647 -0
- package/dist/knowledge/data/operators/ncam_chop.json +1039 -0
- package/dist/knowledge/data/operators/ncam_top.json +1039 -0
- package/dist/knowledge/data/operators/ndi_dat.json +478 -0
- package/dist/knowledge/data/operators/ndi_in_top.json +1326 -0
- package/dist/knowledge/data/operators/ndi_out_top.json +1420 -0
- package/dist/knowledge/data/operators/neighbor_pop.json +534 -0
- package/dist/knowledge/data/operators/noise_chop.json +2230 -0
- package/dist/knowledge/data/operators/noise_pop.json +2107 -0
- package/dist/knowledge/data/operators/noise_sop.json +1136 -0
- package/dist/knowledge/data/operators/noise_top.json +2356 -0
- package/dist/knowledge/data/operators/normal_map_top.json +1182 -0
- package/dist/knowledge/data/operators/normal_pop.json +1488 -0
- package/dist/knowledge/data/operators/normalize_pop.json +1298 -0
- package/dist/knowledge/data/operators/notch_top.json +1511 -0
- package/dist/knowledge/data/operators/null_chop.json +673 -0
- package/dist/knowledge/data/operators/null_comp.json +2921 -0
- package/dist/knowledge/data/operators/null_dat.json +344 -0
- package/dist/knowledge/data/operators/null_mat.json +1511 -0
- package/dist/knowledge/data/operators/null_pop.json +18 -0
- package/dist/knowledge/data/operators/null_sop.json +100 -0
- package/dist/knowledge/data/operators/null_top.json +862 -0
- package/dist/knowledge/data/operators/nvidia_background_top.json +996 -0
- package/dist/knowledge/data/operators/nvidia_denoise_top.json +1089 -0
- package/dist/knowledge/data/operators/nvidia_flex_solver_comp.json +5367 -0
- package/dist/knowledge/data/operators/nvidia_flex_top.json +995 -0
- package/dist/knowledge/data/operators/nvidia_flow_emitter_comp.json +7812 -0
- package/dist/knowledge/data/operators/nvidia_flow_top.json +3675 -0
- package/dist/knowledge/data/operators/nvidia_upscaler_top.json +1089 -0
- package/dist/knowledge/data/operators/oak_device_chop.json +1372 -0
- package/dist/knowledge/data/operators/oak_select_chop.json +947 -0
- package/dist/knowledge/data/operators/oak_select_top.json +1323 -0
- package/dist/knowledge/data/operators/object_chop.json +2356 -0
- package/dist/knowledge/data/operators/object_merge_sop.json +194 -0
- package/dist/knowledge/data/operators/oculus_audio_chop.json +1371 -0
- package/dist/knowledge/data/operators/oculus_rift_chop.json +901 -0
- package/dist/knowledge/data/operators/oculus_rift_sop.json +147 -0
- package/dist/knowledge/data/operators/oculus_rift_top.json +995 -0
- package/dist/knowledge/data/operators/op_execute_dat.json +1463 -0
- package/dist/knowledge/data/operators/op_find_dat.json +2827 -0
- package/dist/knowledge/data/operators/op_viewer_comp.json +6586 -0
- package/dist/knowledge/data/operators/op_viewer_top.json +993 -0
- package/dist/knowledge/data/operators/opencolorio_top.json +1980 -0
- package/dist/knowledge/data/operators/openvr_chop.json +1135 -0
- package/dist/knowledge/data/operators/openvr_sop.json +99 -0
- package/dist/knowledge/data/operators/openvr_top.json +900 -0
- package/dist/knowledge/data/operators/optical_flow_top.json +1230 -0
- package/dist/knowledge/data/operators/optitrack_in_chop.json +854 -0
- package/dist/knowledge/data/operators/orbbec_select_top.json +1042 -0
- package/dist/knowledge/data/operators/orbbec_top.json +1558 -0
- package/dist/knowledge/data/operators/osc_in_chop.json +1371 -0
- package/dist/knowledge/data/operators/osc_in_dat.json +1280 -0
- package/dist/knowledge/data/operators/osc_out_chop.json +1138 -0
- package/dist/knowledge/data/operators/osc_out_dat.json +1280 -0
- package/dist/knowledge/data/operators/ouster_select_top.json +1228 -0
- package/dist/knowledge/data/operators/ouster_top.json +2404 -0
- package/dist/knowledge/data/operators/out_chop.json +476 -0
- package/dist/knowledge/data/operators/out_dat.json +386 -0
- package/dist/knowledge/data/operators/out_mat.json +1982 -0
- package/dist/knowledge/data/operators/out_pop.json +286 -0
- package/dist/knowledge/data/operators/out_sop.json +93 -0
- package/dist/knowledge/data/operators/out_top.json +903 -0
- package/dist/knowledge/data/operators/outside_top.json +1651 -0
- package/dist/knowledge/data/operators/over_top.json +1651 -0
- package/dist/knowledge/data/operators/override_chop.json +663 -0
- package/dist/knowledge/data/operators/pack_top.json +946 -0
- package/dist/knowledge/data/operators/pan_tilt_chop.json +11 -0
- package/dist/knowledge/data/operators/panel_chop.json +663 -0
- package/dist/knowledge/data/operators/panel_execute_dat.json +1182 -0
- package/dist/knowledge/data/operators/pangolin_chop.json +1135 -0
- package/dist/knowledge/data/operators/parameter_chop.json +803 -0
- package/dist/knowledge/data/operators/parameter_comp.json +6962 -0
- package/dist/knowledge/data/operators/parameter_dat.json +1698 -0
- package/dist/knowledge/data/operators/parameter_execute_dat.json +1371 -0
- package/dist/knowledge/data/operators/pargroup_execute_dat.json +1271 -0
- package/dist/knowledge/data/operators/particle_pop.json +1130 -0
- package/dist/knowledge/data/operators/particle_sop.json +2214 -0
- package/dist/knowledge/data/operators/pattern_chop.json +1697 -0
- package/dist/knowledge/data/operators/pattern_pop.json +1767 -0
- package/dist/knowledge/data/operators/pbr_mat.json +4990 -0
- package/dist/knowledge/data/operators/perform_chop.json +1651 -0
- package/dist/knowledge/data/operators/perform_dat.json +1184 -0
- package/dist/knowledge/data/operators/phaser_chop.json +618 -0
- package/dist/knowledge/data/operators/phaser_pop.json +1043 -0
- package/dist/knowledge/data/operators/phong_mat.json +5458 -0
- package/dist/knowledge/data/operators/photoshop_in_top.json +1418 -0
- package/dist/knowledge/data/operators/pipe_in_chop.json +1323 -0
- package/dist/knowledge/data/operators/pipe_out_chop.json +1182 -0
- package/dist/knowledge/data/operators/point_file_in_pop.json +1246 -0
- package/dist/knowledge/data/operators/point_file_in_top.json +3343 -0
- package/dist/knowledge/data/operators/point_file_select_top.json +1086 -0
- package/dist/knowledge/data/operators/point_generator_pop.json +1407 -0
- package/dist/knowledge/data/operators/point_pop.json +752 -0
- package/dist/knowledge/data/operators/point_sop.json +2171 -0
- package/dist/knowledge/data/operators/point_sprite_mat.json +2920 -0
- package/dist/knowledge/data/operators/point_transform_top.json +2779 -0
- package/dist/knowledge/data/operators/polygonize_pop.json +386 -0
- package/dist/knowledge/data/operators/polyloft_sop.json +759 -0
- package/dist/knowledge/data/operators/polypatch_sop.json +761 -0
- package/dist/knowledge/data/operators/polyreduce_sop.json +806 -0
- package/dist/knowledge/data/operators/polyspline_sop.json +667 -0
- package/dist/knowledge/data/operators/polystitch_sop.json +336 -0
- package/dist/knowledge/data/operators/pop_to_chop.json +11 -0
- package/dist/knowledge/data/operators/pop_to_dat.json +11 -0
- package/dist/knowledge/data/operators/pop_to_sop.json +11 -0
- package/dist/knowledge/data/operators/pop_to_top.json +11 -0
- package/dist/knowledge/data/operators/posistagenet_chop.json +900 -0
- package/dist/knowledge/data/operators/prefilter_map_top.json +947 -0
- package/dist/knowledge/data/operators/primitive_pop.json +1254 -0
- package/dist/knowledge/data/operators/primitive_sop.json +2075 -0
- package/dist/knowledge/data/operators/profile_sop.json +756 -0
- package/dist/knowledge/data/operators/project_sop.json +1276 -0
- package/dist/knowledge/data/operators/projection_pop.json +1060 -0
- package/dist/knowledge/data/operators/projection_top.json +1135 -0
- package/dist/knowledge/data/operators/proximity_pop.json +505 -0
- package/dist/knowledge/data/operators/pulse_chop.json +1744 -0
- package/dist/knowledge/data/operators/quantize_pop.json +1052 -0
- package/dist/knowledge/data/operators/rails_sop.json +853 -0
- package/dist/knowledge/data/operators/ramp_top.json +1899 -0
- package/dist/knowledge/data/operators/random_pop.json +1219 -0
- package/dist/knowledge/data/operators/raster_sop.json +291 -0
- package/dist/knowledge/data/operators/ray_pop.json +497 -0
- package/dist/knowledge/data/operators/ray_sop.json +856 -0
- package/dist/knowledge/data/operators/realsense_top.json +1608 -0
- package/dist/knowledge/data/operators/record_chop.json +1040 -0
- package/dist/knowledge/data/operators/rectangle_pop.json +800 -0
- package/dist/knowledge/data/operators/rectangle_sop.json +758 -0
- package/dist/knowledge/data/operators/rectangle_top.json +2259 -0
- package/dist/knowledge/data/operators/refine_sop.json +667 -0
- package/dist/knowledge/data/operators/remap_top.json +1182 -0
- package/dist/knowledge/data/operators/rename_chop.json +522 -0
- package/dist/knowledge/data/operators/render_pass_top.json +3108 -0
- package/dist/knowledge/data/operators/render_pick_chop.json +2119 -0
- package/dist/knowledge/data/operators/render_pick_dat.json +1840 -0
- package/dist/knowledge/data/operators/render_select_top.json +1086 -0
- package/dist/knowledge/data/operators/render_top.json +218 -0
- package/dist/knowledge/data/operators/renderstream_in_chop.json +617 -0
- package/dist/knowledge/data/operators/renderstream_in_top.json +950 -0
- package/dist/knowledge/data/operators/renderstream_out_top.json +997 -0
- package/dist/knowledge/data/operators/reorder_chop.json +946 -0
- package/dist/knowledge/data/operators/reorder_dat.json +711 -0
- package/dist/knowledge/data/operators/reorder_top.json +1229 -0
- package/dist/knowledge/data/operators/replace_chop.json +568 -0
- package/dist/knowledge/data/operators/replicator_comp.json +2208 -0
- package/dist/knowledge/data/operators/rerange_pop.json +892 -0
- package/dist/knowledge/data/operators/resample_chop.json +1134 -0
- package/dist/knowledge/data/operators/resample_sop.json +619 -0
- package/dist/knowledge/data/operators/resolution_top.json +892 -0
- package/dist/knowledge/data/operators/revolve_pop.json +607 -0
- package/dist/knowledge/data/operators/revolve_sop.json +714 -0
- package/dist/knowledge/data/operators/rgb_key_top.json +1654 -0
- package/dist/knowledge/data/operators/rgb_to_hsv_top.json +853 -0
- package/dist/knowledge/data/operators/s_curve_chop.json +1176 -0
- package/dist/knowledge/data/operators/scalable_display_top.json +1042 -0
- package/dist/knowledge/data/operators/screen_grab_top.json +1465 -0
- package/dist/knowledge/data/operators/screen_top.json +1652 -0
- package/dist/knowledge/data/operators/script_chop.json +520 -0
- package/dist/knowledge/data/operators/script_dat.json +429 -0
- package/dist/knowledge/data/operators/script_sop.json +146 -0
- package/dist/knowledge/data/operators/script_top.json +947 -0
- package/dist/knowledge/data/operators/select_chop.json +899 -0
- package/dist/knowledge/data/operators/select_comp.json +5645 -0
- package/dist/knowledge/data/operators/select_dat.json +1371 -0
- package/dist/knowledge/data/operators/select_mat.json +1977 -0
- package/dist/knowledge/data/operators/select_pop.json +347 -0
- package/dist/knowledge/data/operators/select_sop.json +100 -0
- package/dist/knowledge/data/operators/select_top.json +901 -0
- package/dist/knowledge/data/operators/sequence_blend_sop.json +336 -0
- package/dist/knowledge/data/operators/serial_chop.json +1182 -0
- package/dist/knowledge/data/operators/serial_dat.json +1418 -0
- package/dist/knowledge/data/operators/shared_mem_in_chop.json +620 -0
- package/dist/knowledge/data/operators/shared_mem_in_comp.json +1323 -0
- package/dist/knowledge/data/operators/shared_mem_in_top.json +994 -0
- package/dist/knowledge/data/operators/shared_mem_out_chop.json +620 -0
- package/dist/knowledge/data/operators/shared_mem_out_comp.json +1372 -0
- package/dist/knowledge/data/operators/shared_mem_out_top.json +1137 -0
- package/dist/knowledge/data/operators/shift_chop.json +899 -0
- package/dist/knowledge/data/operators/shuffle_chop.json +612 -0
- package/dist/knowledge/data/operators/sick_top.json +1322 -0
- package/dist/knowledge/data/operators/skin_deform_pop.json +972 -0
- package/dist/knowledge/data/operators/skin_pop.json +330 -0
- package/dist/knowledge/data/operators/skin_sop.json +711 -0
- package/dist/knowledge/data/operators/slider_comp.json +6918 -0
- package/dist/knowledge/data/operators/slope_chop.json +661 -0
- package/dist/knowledge/data/operators/slope_top.json +1370 -0
- package/dist/knowledge/data/operators/socketio_dat.json +945 -0
- package/dist/knowledge/data/operators/sop_to_chop.json +1137 -0
- package/dist/knowledge/data/operators/sop_to_dat.json +622 -0
- package/dist/knowledge/data/operators/sop_to_pop.json +409 -0
- package/dist/knowledge/data/operators/sort_chop.json +805 -0
- package/dist/knowledge/data/operators/sort_dat.json +894 -0
- package/dist/knowledge/data/operators/sort_pop.json +1023 -0
- package/dist/knowledge/data/operators/sort_sop.json +569 -0
- package/dist/knowledge/data/operators/spectrum_top.json +1182 -0
- package/dist/knowledge/data/operators/speed_chop.json +1180 -0
- package/dist/knowledge/data/operators/sphere_pop.json +1141 -0
- package/dist/knowledge/data/operators/sphere_sop.json +1370 -0
- package/dist/knowledge/data/operators/splice_chop.json +1226 -0
- package/dist/knowledge/data/operators/spring_chop.json +899 -0
- package/dist/knowledge/data/operators/spring_sop.json +1463 -0
- package/dist/knowledge/data/operators/sprinkle_pop.json +420 -0
- package/dist/knowledge/data/operators/sprinkle_sop.json +337 -0
- package/dist/knowledge/data/operators/sprite_sop.json +571 -0
- package/dist/knowledge/data/operators/ssao_top.json +1510 -0
- package/dist/knowledge/data/operators/st2110_device_chop.json +11 -0
- package/dist/knowledge/data/operators/stitch_sop.json +807 -0
- package/dist/knowledge/data/operators/stretch_chop.json +945 -0
- package/dist/knowledge/data/operators/stype_in_chop.json +756 -0
- package/dist/knowledge/data/operators/stype_out_chop.json +852 -0
- package/dist/knowledge/data/operators/stype_top.json +943 -0
- package/dist/knowledge/data/operators/subdivide_pop.json +292 -0
- package/dist/knowledge/data/operators/subdivide_sop.json +618 -0
- package/dist/knowledge/data/operators/substance_select_top.json +945 -0
- package/dist/knowledge/data/operators/substance_top.json +1182 -0
- package/dist/knowledge/data/operators/substitute_dat.json +1605 -0
- package/dist/knowledge/data/operators/subtract_top.json +1650 -0
- package/dist/knowledge/data/operators/superquad_sop.json +1135 -0
- package/dist/knowledge/data/operators/surfsect_sop.json +853 -0
- package/dist/knowledge/data/operators/sweep_sop.json +947 -0
- package/dist/knowledge/data/operators/switch_chop.json +523 -0
- package/dist/knowledge/data/operators/switch_dat.json +383 -0
- package/dist/knowledge/data/operators/switch_mat.json +1553 -0
- package/dist/knowledge/data/operators/switch_pop.json +496 -0
- package/dist/knowledge/data/operators/switch_sop.json +101 -0
- package/dist/knowledge/data/operators/switch_top.json +959 -0
- package/dist/knowledge/data/operators/sync_in_chop.json +617 -0
- package/dist/knowledge/data/operators/sync_out_chop.json +993 -0
- package/dist/knowledge/data/operators/syphon_spout_in_top.json +946 -0
- package/dist/knowledge/data/operators/syphon_spout_out_top.json +948 -0
- package/dist/knowledge/data/operators/table_comp.json +7009 -0
- package/dist/knowledge/data/operators/table_dat.json +1080 -0
- package/dist/knowledge/data/operators/tablet_chop.json +1367 -0
- package/dist/knowledge/data/operators/text_comp.json +8981 -0
- package/dist/knowledge/data/operators/text_dat.json +675 -0
- package/dist/knowledge/data/operators/text_sop.json +1512 -0
- package/dist/knowledge/data/operators/text_top.json +4236 -0
- package/dist/knowledge/data/operators/texture_3d_top.json +1417 -0
- package/dist/knowledge/data/operators/texture_map_pop.json +1744 -0
- package/dist/knowledge/data/operators/texture_sop.json +992 -0
- package/dist/knowledge/data/operators/threshold_top.json +1227 -0
- package/dist/knowledge/data/operators/tile_top.json +1840 -0
- package/dist/knowledge/data/operators/time_comp.json +1745 -0
- package/dist/knowledge/data/operators/time_machine_top.json +1041 -0
- package/dist/knowledge/data/operators/time_slice_chop.json +568 -0
- package/dist/knowledge/data/operators/timecode_chop.json +1981 -0
- package/dist/knowledge/data/operators/timeline_chop.json +1038 -0
- package/dist/knowledge/data/operators/timer_chop.json +4236 -0
- package/dist/knowledge/data/operators/top_to_chop.json +2077 -0
- package/dist/knowledge/data/operators/top_to_pop.json +2144 -0
- package/dist/knowledge/data/operators/topology_pop.json +1526 -0
- package/dist/knowledge/data/operators/torus_pop.json +901 -0
- package/dist/knowledge/data/operators/torus_sop.json +1368 -0
- package/dist/knowledge/data/operators/touch_in_chop.json +1182 -0
- package/dist/knowledge/data/operators/touch_in_dat.json +618 -0
- package/dist/knowledge/data/operators/touch_in_top.json +1182 -0
- package/dist/knowledge/data/operators/touch_out_chop.json +947 -0
- package/dist/knowledge/data/operators/touch_out_dat.json +712 -0
- package/dist/knowledge/data/operators/touch_out_top.json +1134 -0
- package/dist/knowledge/data/operators/trace_sop.json +759 -0
- package/dist/knowledge/data/operators/trail_chop.json +901 -0
- package/dist/knowledge/data/operators/trail_pop.json +827 -0
- package/dist/knowledge/data/operators/trail_sop.json +616 -0
- package/dist/knowledge/data/operators/transform_chop.json +2168 -0
- package/dist/knowledge/data/operators/transform_pop.json +2659 -0
- package/dist/knowledge/data/operators/transform_sop.json +1466 -0
- package/dist/knowledge/data/operators/transform_top.json +1803 -0
- package/dist/knowledge/data/operators/transform_xyz_chop.json +1369 -0
- package/dist/knowledge/data/operators/transpose_dat.json +334 -0
- package/dist/knowledge/data/operators/trig_pop.json +1135 -0
- package/dist/knowledge/data/operators/trigger_chop.json +2214 -0
- package/dist/knowledge/data/operators/trim_chop.json +805 -0
- package/dist/knowledge/data/operators/trim_sop.json +336 -0
- package/dist/knowledge/data/operators/tristrip_sop.json +194 -0
- package/dist/knowledge/data/operators/tube_pop.json +861 -0
- package/dist/knowledge/data/operators/tube_sop.json +1323 -0
- package/dist/knowledge/data/operators/tuio_in_dat.json +806 -0
- package/dist/knowledge/data/operators/twist_pop.json +1127 -0
- package/dist/knowledge/data/operators/twist_sop.json +533 -0
- package/dist/knowledge/data/operators/udp_in_dat.json +1090 -0
- package/dist/knowledge/data/operators/udp_out_dat.json +1280 -0
- package/dist/knowledge/data/operators/under_top.json +1652 -0
- package/dist/knowledge/data/operators/usd_comp.json +4800 -0
- package/dist/knowledge/data/operators/vertex_sop.json +667 -0
- package/dist/knowledge/data/operators/video_device_in_top.json +3062 -0
- package/dist/knowledge/data/operators/video_device_out_top.json +1936 -0
- package/dist/knowledge/data/operators/video_devices_dat.json +616 -0
- package/dist/knowledge/data/operators/video_stream_in_top.json +1842 -0
- package/dist/knowledge/data/operators/video_stream_out_top.json +2548 -0
- package/dist/knowledge/data/operators/vioso_top.json +943 -0
- package/dist/knowledge/data/operators/warp_chop.json +570 -0
- package/dist/knowledge/data/operators/wave_chop.json +1510 -0
- package/dist/knowledge/data/operators/web_client_dat.json +1514 -0
- package/dist/knowledge/data/operators/web_render_top.json +1749 -0
- package/dist/knowledge/data/operators/web_server_dat.json +714 -0
- package/dist/knowledge/data/operators/webrtc_dat.json +851 -0
- package/dist/knowledge/data/operators/websocket_dat.json +901 -0
- package/dist/knowledge/data/operators/widget_comp.json +6299 -0
- package/dist/knowledge/data/operators/window_comp.json +3061 -0
- package/dist/knowledge/data/operators/wireframe_mat.json +2165 -0
- package/dist/knowledge/data/operators/wireframe_sop.json +338 -0
- package/dist/knowledge/data/operators/wrnchai_chop.json +1084 -0
- package/dist/knowledge/data/operators/xml_dat.json +1230 -0
- package/dist/knowledge/data/operators/zed_chop.json +1840 -0
- package/dist/knowledge/data/operators/zed_sop.json +712 -0
- package/dist/knowledge/data/operators/zed_top.json +1981 -0
- package/dist/knowledge/data/patterns.json +1 -0
- package/dist/knowledge/data/python-api/App.json +78 -0
- package/dist/knowledge/data/python-api/Attribute.json +43 -0
- package/dist/knowledge/data/python-api/Attributes.json +41 -0
- package/dist/knowledge/data/python-api/Bounds.json +10 -0
- package/dist/knowledge/data/python-api/CHOP.json +683 -0
- package/dist/knowledge/data/python-api/COMP.json +1019 -0
- package/dist/knowledge/data/python-api/Cell.json +80 -0
- package/dist/knowledge/data/python-api/Channel.json +100 -0
- package/dist/knowledge/data/python-api/Connector.json +43 -0
- package/dist/knowledge/data/python-api/DAT.json +1289 -0
- package/dist/knowledge/data/python-api/Dependency.json +10 -0
- package/dist/knowledge/data/python-api/Error_DAT.json +9 -0
- package/dist/knowledge/data/python-api/Group.json +54 -0
- package/dist/knowledge/data/python-api/License.json +25 -0
- package/dist/knowledge/data/python-api/MAT.json +621 -0
- package/dist/knowledge/data/python-api/MOD.json +83 -0
- package/dist/knowledge/data/python-api/Matrix.json +556 -0
- package/dist/knowledge/data/python-api/Monitor.json +25 -0
- package/dist/knowledge/data/python-api/Network.json +10 -0
- package/dist/knowledge/data/python-api/NetworkEditor.json +154 -0
- package/dist/knowledge/data/python-api/Node.json +10 -0
- package/dist/knowledge/data/python-api/OP.json +621 -0
- package/dist/knowledge/data/python-api/OP_Viewer_COMP.json +9 -0
- package/dist/knowledge/data/python-api/ObjectCOMP.json +1150 -0
- package/dist/knowledge/data/python-api/Page.json +797 -0
- package/dist/knowledge/data/python-api/Pane.json +62 -0
- package/dist/knowledge/data/python-api/Panel.json +25 -0
- package/dist/knowledge/data/python-api/PanelCOMP.json +1167 -0
- package/dist/knowledge/data/python-api/PanelValue.json +25 -0
- package/dist/knowledge/data/python-api/Par.json +115 -0
- package/dist/knowledge/data/python-api/ParGroup.json +101 -0
- package/dist/knowledge/data/python-api/Parameter.json +10 -0
- package/dist/knowledge/data/python-api/Parent.json +10 -0
- package/dist/knowledge/data/python-api/Pattern_CHOP.json +9 -0
- package/dist/knowledge/data/python-api/Peer.json +85 -0
- package/dist/knowledge/data/python-api/Point.json +32 -0
- package/dist/knowledge/data/python-api/Position.json +92 -0
- package/dist/knowledge/data/python-api/Prim.json +63 -0
- package/dist/knowledge/data/python-api/Project.json +118 -0
- package/dist/knowledge/data/python-api/PythonOp.json +140 -0
- package/dist/knowledge/data/python-api/Quaternion.json +24 -0
- package/dist/knowledge/data/python-api/Replicator_COMP.json +9 -0
- package/dist/knowledge/data/python-api/Run.json +32 -0
- package/dist/knowledge/data/python-api/Runs.json +10 -0
- package/dist/knowledge/data/python-api/SOP.json +642 -0
- package/dist/knowledge/data/python-api/ScriptOp.json +119 -0
- package/dist/knowledge/data/python-api/Segment.json +25 -0
- package/dist/knowledge/data/python-api/Sequence.json +48 -0
- package/dist/knowledge/data/python-api/Stype.json +9 -0
- package/dist/knowledge/data/python-api/SysInfo.json +25 -0
- package/dist/knowledge/data/python-api/TOP.json +724 -0
- package/dist/knowledge/data/python-api/Timecode.json +200 -0
- package/dist/knowledge/data/python-api/UI.json +73 -0
- package/dist/knowledge/data/python-api/Vertex.json +25 -0
- package/dist/knowledge/data/python-api/baseCOMP.json +1019 -0
- package/dist/knowledge/data/python-api/evaluateDAT.json +1289 -0
- package/dist/knowledge/data/python-api/examineDAT.json +1289 -0
- package/dist/knowledge/data/python-api/glslTOP.json +724 -0
- package/dist/knowledge/data/python-api/index.json +1 -0
- package/dist/knowledge/data/python-api/listCOMP.json +1516 -0
- package/dist/knowledge/data/python-api/midiinDAT.json +1328 -0
- package/dist/knowledge/data/python-api/scriptCHOP.json +24 -0
- package/dist/knowledge/data/python-api/scriptDAT.json +1335 -0
- package/dist/knowledge/data/python-api/scriptSOP.json +24 -0
- package/dist/knowledge/data/python-api/scriptTOP.json +24 -0
- package/dist/knowledge/data/python-api/serialDAT.json +1323 -0
- package/dist/knowledge/data/python-api/tcpipDAT.json +1357 -0
- package/dist/knowledge/data/python-api/td.json +646 -0
- package/dist/knowledge/data/python-api/td_Module.json +24 -0
- package/dist/knowledge/data/tutorials/anatomy_of_a_chop.json +275 -0
- package/dist/knowledge/data/tutorials/build_a_list_comp.json +268 -0
- package/dist/knowledge/data/tutorials/index.json +1 -0
- package/dist/knowledge/data/tutorials/introduction_to_python_tutorial.json +1598 -0
- package/dist/knowledge/data/tutorials/tdbitwig_user_guide.json +1986 -0
- package/dist/knowledge/data/tutorials/touchdesigner_video_server_specification_guide.json +555 -0
- package/dist/knowledge/data/tutorials/video_streaming_user_guide.json +653 -0
- package/dist/knowledge/data/tutorials/write_a_cplusplus_chop.json +139 -0
- package/dist/knowledge/data/tutorials/write_a_cplusplus_plugin.json +796 -0
- package/dist/knowledge/data/tutorials/write_a_cplusplus_top.json +104 -0
- package/dist/knowledge/data/tutorials/write_a_cuda_dll.json +259 -0
- package/dist/knowledge/data/tutorials/write_a_glsl_material.json +2353 -0
- package/dist/knowledge/data/tutorials/write_a_glsl_top.json +818 -0
- package/dist/knowledge/data/tutorials/write_a_shared_memory_chop.json +261 -0
- package/dist/knowledge/data/tutorials/write_a_shared_memory_top.json +193 -0
- package/dist/recipes/audio_spectrum_bars.json +26 -0
- package/dist/recipes/data_sonification.json +37 -0
- package/dist/recipes/feedback_tunnel.json +73 -0
- package/dist/recipes/kinect_silhouette.json +45 -0
- package/dist/recipes/led_strip_mapper.json +32 -0
- package/dist/recipes/noise_landscape.json +76 -0
- package/dist/recipes/particle_galaxy.json +52 -0
- package/dist/recipes/projection_mapping.json +25 -0
- package/dist/recipes/reaction_diffusion.json +90 -0
- package/dist/recipes/webcam_glitch.json +40 -0
- package/package.json +74 -0
- package/recipes/audio_spectrum_bars.json +26 -0
- package/recipes/data_sonification.json +37 -0
- package/recipes/feedback_tunnel.json +73 -0
- package/recipes/kinect_silhouette.json +45 -0
- package/recipes/led_strip_mapper.json +32 -0
- package/recipes/noise_landscape.json +76 -0
- package/recipes/particle_galaxy.json +52 -0
- package/recipes/projection_mapping.json +25 -0
- package/recipes/reaction_diffusion.json +90 -0
- package/recipes/webcam_glitch.json +40 -0
- package/td/README.md +160 -0
- package/td/bootstrap.py +73 -0
- package/td/modules/mcp/__init__.py +1 -0
- package/td/modules/mcp/controllers/__init__.py +1 -0
- package/td/modules/mcp/controllers/api_controller.py +240 -0
- package/td/modules/mcp/dev.py +40 -0
- package/td/modules/mcp/events.py +25 -0
- package/td/modules/mcp/install.py +155 -0
- package/td/modules/mcp/services/__init__.py +1 -0
- package/td/modules/mcp/services/analysis_service.py +64 -0
- package/td/modules/mcp/services/api_service.py +195 -0
- package/td/modules/mcp/services/batch_service.py +49 -0
- package/td/modules/mcp/services/preview_service.py +40 -0
- package/td/modules/utils/__init__.py +1 -0
- package/td/modules/utils/version.py +3 -0
- package/td/startup.py +34 -0
- package/td/templates/webserver_callbacks.py +50 -0
- package/td/tests/test_api_controller.py +242 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "noise_landscape",
|
|
3
|
+
"name": "Noise Landscape",
|
|
4
|
+
"description": "A 3D terrain displaced by noise, shaded with a Phong material and rendered with an orbiting camera.",
|
|
5
|
+
"tags": ["generative", "3d", "geometry", "noise", "landscape"],
|
|
6
|
+
"difficulty": "intermediate",
|
|
7
|
+
"td_version_min": "2022",
|
|
8
|
+
"nodes": [
|
|
9
|
+
{
|
|
10
|
+
"name": "geo1",
|
|
11
|
+
"type": "geometryCOMP",
|
|
12
|
+
"comment": "Renders the displaced terrain SOP nested inside it (not its default torus)"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "grid1",
|
|
16
|
+
"type": "gridSOP",
|
|
17
|
+
"parent": "geo1",
|
|
18
|
+
"parameters": { "rows": 120, "cols": 120, "sizex": 4, "sizey": 4, "orient": "zx" },
|
|
19
|
+
"comment": "Base mesh (horizontal plane), nested inside geo1"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "noise1",
|
|
23
|
+
"type": "noiseSOP",
|
|
24
|
+
"parent": "geo1",
|
|
25
|
+
"render": true,
|
|
26
|
+
"parameters": { "amp": 0.8, "period": 2 },
|
|
27
|
+
"comment": "Displaces the grid into hills/valleys; this is the rendered geometry"
|
|
28
|
+
},
|
|
29
|
+
{ "name": "phong1", "type": "phongMAT", "comment": "Surface shading" },
|
|
30
|
+
{ "name": "cam1", "type": "cameraCOMP", "parameters": { "tz": 7, "ty": 5, "rx": -33 } },
|
|
31
|
+
{ "name": "light1", "type": "lightCOMP", "parameters": { "tx": 4, "ty": 6, "tz": 4 } },
|
|
32
|
+
{ "name": "render1", "type": "renderTOP", "comment": "Final rendered image" },
|
|
33
|
+
{ "name": "out1", "type": "nullTOP" }
|
|
34
|
+
],
|
|
35
|
+
"connections": [{ "from": "grid1", "to": "noise1" }, { "from": "render1", "to": "out1" }],
|
|
36
|
+
"parameters": [
|
|
37
|
+
{
|
|
38
|
+
"name": "geometry",
|
|
39
|
+
"node": "render1",
|
|
40
|
+
"param": "geometry",
|
|
41
|
+
"value": "geo1",
|
|
42
|
+
"description": "Geometry COMP to render."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "camera",
|
|
46
|
+
"node": "render1",
|
|
47
|
+
"param": "camera",
|
|
48
|
+
"value": "cam1",
|
|
49
|
+
"description": "Camera COMP."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "lights",
|
|
53
|
+
"node": "render1",
|
|
54
|
+
"param": "lights",
|
|
55
|
+
"value": "light1",
|
|
56
|
+
"description": "Light COMP(s)."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "material",
|
|
60
|
+
"node": "geo1",
|
|
61
|
+
"param": "material",
|
|
62
|
+
"value": "phong1",
|
|
63
|
+
"description": "Material applied to the geometry."
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "terrain_height",
|
|
67
|
+
"node": "noise1",
|
|
68
|
+
"param": "amp",
|
|
69
|
+
"value": 0.8,
|
|
70
|
+
"min": 0,
|
|
71
|
+
"max": 2,
|
|
72
|
+
"label": "Terrain Height"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"preview_description": "A softly lit rolling 3D terrain of noise-driven hills viewed from a slightly elevated angle."
|
|
76
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "particle_galaxy",
|
|
3
|
+
"name": "Particle Galaxy",
|
|
4
|
+
"description": "A swirling galaxy of particles emitted from a sphere, pushed by turbulence and gravity, rendered as glowing sprites.",
|
|
5
|
+
"tags": ["particle", "3d", "galaxy", "generative"],
|
|
6
|
+
"difficulty": "advanced",
|
|
7
|
+
"td_version_min": "2022",
|
|
8
|
+
"nodes": [
|
|
9
|
+
{
|
|
10
|
+
"name": "geo",
|
|
11
|
+
"type": "geometryCOMP",
|
|
12
|
+
"comment": "Renders the particle SOP nested inside it (not its default torus)"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "sphere",
|
|
16
|
+
"type": "sphereSOP",
|
|
17
|
+
"parent": "geo",
|
|
18
|
+
"parameters": { "radx": 1, "rady": 1, "radz": 1 },
|
|
19
|
+
"comment": "Emitter surface, nested inside geo"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "particle",
|
|
23
|
+
"type": "particleSOP",
|
|
24
|
+
"parent": "geo",
|
|
25
|
+
"render": true,
|
|
26
|
+
"parameters": { "life": 4 },
|
|
27
|
+
"comment": "Particle simulation fed by the sphere; this is the rendered geometry"
|
|
28
|
+
},
|
|
29
|
+
{ "name": "mat", "type": "pointspriteMAT", "comment": "Glowing sprite material" },
|
|
30
|
+
{ "name": "cam", "type": "cameraCOMP", "parameters": { "tz": 6 } },
|
|
31
|
+
{ "name": "light", "type": "lightCOMP", "parameters": { "tx": 3, "ty": 4, "tz": 4 } },
|
|
32
|
+
{ "name": "render", "type": "renderTOP", "comment": "Rendered galaxy" },
|
|
33
|
+
{ "name": "out1", "type": "nullTOP" }
|
|
34
|
+
],
|
|
35
|
+
"connections": [{ "from": "sphere", "to": "particle" }, { "from": "render", "to": "out1" }],
|
|
36
|
+
"parameters": [
|
|
37
|
+
{ "name": "geometry", "node": "render", "param": "geometry", "value": "geo" },
|
|
38
|
+
{ "name": "camera", "node": "render", "param": "camera", "value": "cam" },
|
|
39
|
+
{ "name": "lights", "node": "render", "param": "lights", "value": "light" },
|
|
40
|
+
{ "name": "material", "node": "geo", "param": "material", "value": "mat" },
|
|
41
|
+
{
|
|
42
|
+
"name": "lifetime",
|
|
43
|
+
"node": "particle",
|
|
44
|
+
"param": "life",
|
|
45
|
+
"value": 4,
|
|
46
|
+
"min": 1,
|
|
47
|
+
"max": 20,
|
|
48
|
+
"label": "Particle Lifetime"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"preview_description": "A slowly rotating spiral of bright point-sprites drifting outward from a glowing core."
|
|
52
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "projection_mapping",
|
|
3
|
+
"name": "Projection Mapping",
|
|
4
|
+
"description": "Takes a source visual through corner-pin keystone correction and edge feathering, ready to send to a projector window.",
|
|
5
|
+
"tags": ["projection", "mapping", "output", "installation"],
|
|
6
|
+
"difficulty": "advanced",
|
|
7
|
+
"td_version_min": "2022",
|
|
8
|
+
"nodes": [
|
|
9
|
+
{ "name": "source", "type": "nullTOP", "comment": "Wire your visual into this node" },
|
|
10
|
+
{ "name": "cornerpin", "type": "cornerpinTOP", "comment": "Keystone / corner-pin warp" },
|
|
11
|
+
{
|
|
12
|
+
"name": "feather",
|
|
13
|
+
"type": "levelTOP",
|
|
14
|
+
"comment": "Edge-blend brightness ramp (placeholder for edge blending)"
|
|
15
|
+
},
|
|
16
|
+
{ "name": "out1", "type": "nullTOP", "comment": "Send to a Window COMP for the projector" }
|
|
17
|
+
],
|
|
18
|
+
"connections": [
|
|
19
|
+
{ "from": "source", "to": "cornerpin" },
|
|
20
|
+
{ "from": "cornerpin", "to": "feather" },
|
|
21
|
+
{ "from": "feather", "to": "out1" }
|
|
22
|
+
],
|
|
23
|
+
"parameters": [],
|
|
24
|
+
"preview_description": "A warped, edge-feathered version of the source ready to align onto a physical surface."
|
|
25
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "reaction_diffusion",
|
|
3
|
+
"name": "Reaction Diffusion",
|
|
4
|
+
"description": "A Gray-Scott reaction-diffusion simulation running entirely on the GPU in a GLSL TOP, with the previous state fed back each frame.",
|
|
5
|
+
"tags": ["generative", "glsl", "simulation", "reaction-diffusion", "organic"],
|
|
6
|
+
"difficulty": "advanced",
|
|
7
|
+
"td_version_min": "2022",
|
|
8
|
+
"nodes": [
|
|
9
|
+
{
|
|
10
|
+
"name": "seed1",
|
|
11
|
+
"type": "glslTOP",
|
|
12
|
+
"comment": "Generates the Gray-Scott initial state: A=1 everywhere with sparse organic blobs of B"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "feedback1",
|
|
16
|
+
"type": "feedbackTOP",
|
|
17
|
+
"comment": "Holds the previous simulation state"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "glsl1",
|
|
21
|
+
"type": "glslTOP",
|
|
22
|
+
"comment": "Gray-Scott update step (reads feedback as input 0)"
|
|
23
|
+
},
|
|
24
|
+
{ "name": "out1", "type": "nullTOP", "comment": "Output of the simulation" }
|
|
25
|
+
],
|
|
26
|
+
"connections": [
|
|
27
|
+
{ "from": "seed1", "to": "feedback1", "to_input": 0 },
|
|
28
|
+
{ "from": "feedback1", "to": "glsl1", "to_input": 0 },
|
|
29
|
+
{ "from": "glsl1", "to": "out1" }
|
|
30
|
+
],
|
|
31
|
+
"parameters": [
|
|
32
|
+
{
|
|
33
|
+
"name": "feedback_target",
|
|
34
|
+
"node": "feedback1",
|
|
35
|
+
"param": "top",
|
|
36
|
+
"value": "glsl1",
|
|
37
|
+
"description": "feedbackTOP samples glsl1 (the simulation output)."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "seed_resmode",
|
|
41
|
+
"node": "seed1",
|
|
42
|
+
"param": "outputresolution",
|
|
43
|
+
"value": "custom",
|
|
44
|
+
"description": "The seed GLSL TOP has no input, so it needs an explicit resolution; it propagates through the feedback loop to size the whole simulation."
|
|
45
|
+
},
|
|
46
|
+
{ "name": "seed_resmult", "node": "seed1", "param": "resmult", "value": 0 },
|
|
47
|
+
{
|
|
48
|
+
"name": "seed_resw",
|
|
49
|
+
"node": "seed1",
|
|
50
|
+
"param": "resolutionw",
|
|
51
|
+
"value": 256,
|
|
52
|
+
"label": "Resolution",
|
|
53
|
+
"description": "Simulation grid width."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "seed_resh",
|
|
57
|
+
"node": "seed1",
|
|
58
|
+
"param": "resolutionh",
|
|
59
|
+
"value": 256,
|
|
60
|
+
"description": "Simulation grid height."
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"glsl_uniforms": [
|
|
64
|
+
{
|
|
65
|
+
"node": "glsl1",
|
|
66
|
+
"name": "uFeed",
|
|
67
|
+
"kind": "float",
|
|
68
|
+
"value": 0.055,
|
|
69
|
+
"label": "Feed Rate",
|
|
70
|
+
"min": 0.0,
|
|
71
|
+
"max": 0.1,
|
|
72
|
+
"description": "Gray-Scott feed rate — how fast chemical A is replenished. Lower values give sparser patterns."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"node": "glsl1",
|
|
76
|
+
"name": "uKill",
|
|
77
|
+
"kind": "float",
|
|
78
|
+
"value": 0.062,
|
|
79
|
+
"label": "Kill Rate",
|
|
80
|
+
"min": 0.0,
|
|
81
|
+
"max": 0.1,
|
|
82
|
+
"description": "Gray-Scott kill rate — how fast chemical B is removed. Tune alongside Feed Rate to shift between spots, stripes and mazes."
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"glsl_code": {
|
|
86
|
+
"seed1": "out vec4 fragColor;\nfloat hash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); }\nfloat vnoise(vec2 p){\n vec2 i = floor(p); vec2 f = fract(p);\n f = f*f*(3.0-2.0*f);\n float a = hash(i);\n float b = hash(i+vec2(1.0,0.0));\n float c = hash(i+vec2(0.0,1.0));\n float d = hash(i+vec2(1.0,1.0));\n return mix(mix(a,b,f.x), mix(c,d,f.x), f.y);\n}\nvoid main(){\n vec2 uv = vUV.st;\n float n = vnoise(uv * 14.0);\n float b = smoothstep(0.62, 0.70, n);\n fragColor = TDOutputSwizzle(vec4(1.0, b, 0.0, 1.0));\n}\n",
|
|
87
|
+
"glsl1": "out vec4 fragColor;\n\nuniform float uFeed;\nuniform float uKill;\n\nvec2 sampleAB(vec2 uv) { return texture(sTD2DInputs[0], uv).rg; }\n\nvoid main()\n{\n vec2 uv = vUV.st;\n vec2 texel = uTD2DInfos[0].res.xy;\n vec2 c = sampleAB(uv);\n float a = c.r;\n float b = c.g;\n\n vec2 lap = vec2(0.0);\n lap += sampleAB(uv + texel * vec2(-1.0, 0.0)) * 0.2;\n lap += sampleAB(uv + texel * vec2( 1.0, 0.0)) * 0.2;\n lap += sampleAB(uv + texel * vec2( 0.0,-1.0)) * 0.2;\n lap += sampleAB(uv + texel * vec2( 0.0, 1.0)) * 0.2;\n lap += sampleAB(uv + texel * vec2(-1.0,-1.0)) * 0.05;\n lap += sampleAB(uv + texel * vec2( 1.0,-1.0)) * 0.05;\n lap += sampleAB(uv + texel * vec2(-1.0, 1.0)) * 0.05;\n lap += sampleAB(uv + texel * vec2( 1.0, 1.0)) * 0.05;\n lap -= c;\n\n float reaction = a * b * b;\n float da = 1.0 * lap.r - reaction + uFeed * (1.0 - a);\n float db = 0.5 * lap.g + reaction - (uKill + uFeed) * b;\n\n float a2 = clamp(a + da, 0.0, 1.0);\n float b2 = clamp(b + db, 0.0, 1.0);\n fragColor = TDOutputSwizzle(vec4(a2, b2, 0.0, 1.0));\n}\n"
|
|
88
|
+
},
|
|
89
|
+
"preview_description": "Evolving coral / fingerprint-like organic patterns growing and dividing across the frame."
|
|
90
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "webcam_glitch",
|
|
3
|
+
"name": "Webcam Glitch",
|
|
4
|
+
"description": "Live webcam pushed through edge detection, RGB split, a feedback loop and a glitch shader for a corrupted-signal look.",
|
|
5
|
+
"tags": ["webcam", "glitch", "feedback", "realtime"],
|
|
6
|
+
"difficulty": "intermediate",
|
|
7
|
+
"td_version_min": "2022",
|
|
8
|
+
"nodes": [
|
|
9
|
+
{ "name": "cam", "type": "videodeviceinTOP", "comment": "Webcam input" },
|
|
10
|
+
{ "name": "edge", "type": "edgeTOP" },
|
|
11
|
+
{ "name": "rgbsplit", "type": "glslTOP", "comment": "Chromatic RGB offset" },
|
|
12
|
+
{ "name": "feedback1", "type": "feedbackTOP" },
|
|
13
|
+
{ "name": "comp1", "type": "compositeTOP" },
|
|
14
|
+
{ "name": "glitch", "type": "glslTOP", "comment": "Per-band horizontal displacement" },
|
|
15
|
+
{ "name": "out1", "type": "nullTOP" }
|
|
16
|
+
],
|
|
17
|
+
"connections": [
|
|
18
|
+
{ "from": "cam", "to": "edge" },
|
|
19
|
+
{ "from": "edge", "to": "rgbsplit" },
|
|
20
|
+
{ "from": "rgbsplit", "to": "feedback1" },
|
|
21
|
+
{ "from": "rgbsplit", "to": "comp1", "to_input": 0 },
|
|
22
|
+
{ "from": "feedback1", "to": "comp1", "to_input": 1 },
|
|
23
|
+
{ "from": "comp1", "to": "glitch" },
|
|
24
|
+
{ "from": "glitch", "to": "out1" }
|
|
25
|
+
],
|
|
26
|
+
"parameters": [
|
|
27
|
+
{
|
|
28
|
+
"name": "feedback_target",
|
|
29
|
+
"node": "feedback1",
|
|
30
|
+
"param": "top",
|
|
31
|
+
"value": "glitch",
|
|
32
|
+
"description": "Feedback samples the glitch output."
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"glsl_code": {
|
|
36
|
+
"rgbsplit": "out vec4 fragColor;\nvoid main(){ vec2 uv=vUV.st; vec2 o=vec2(0.006,0.0);\n float r=texture(sTD2DInputs[0],uv+o).r; float g=texture(sTD2DInputs[0],uv).g; float b=texture(sTD2DInputs[0],uv-o).b;\n fragColor=TDOutputSwizzle(vec4(r,g,b,1.0)); }\n",
|
|
37
|
+
"glitch": "out vec4 fragColor;\nfloat hash(float x){return fract(sin(x*127.1)*43758.5453);}\nvoid main(){ vec2 uv=vUV.st; float band=floor(uv.y*24.0);\n float off=(hash(band)-0.5)*0.08*step(0.7,hash(band*1.7));\n fragColor=TDOutputSwizzle(texture(sTD2DInputs[0],uv+vec2(off,0.0))); }\n"
|
|
38
|
+
},
|
|
39
|
+
"preview_description": "A ghosted, color-fringed webcam image that periodically tears into horizontal glitch bands."
|
|
40
|
+
}
|
package/td/README.md
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# tdmcp TouchDesigner bridge
|
|
2
|
+
|
|
3
|
+
This folder contains the TouchDesigner-side bridge: a small Python package that
|
|
4
|
+
exposes a REST API (via a **Web Server DAT**) which the `tdmcp` MCP server
|
|
5
|
+
talks to.
|
|
6
|
+
|
|
7
|
+
> A binary `.tox` cannot be generated from source by an AI agent, so the bridge
|
|
8
|
+
> ships as Python modules plus a callbacks template. Assembling the `.tox` is a
|
|
9
|
+
> one-time, copy-paste install (below). You can then export your own
|
|
10
|
+
> `mcp_webserver_base.tox` from TD for reuse.
|
|
11
|
+
|
|
12
|
+
## Easiest install
|
|
13
|
+
|
|
14
|
+
You only need the bridge running inside TouchDesigner once. Pick whichever fits —
|
|
15
|
+
all three create one tidy `tdmcp_bridge` COMP (Web Server DAT + callbacks), are
|
|
16
|
+
idempotent, and can be undone with `from mcp import install; install.uninstall()`.
|
|
17
|
+
|
|
18
|
+
**A. One paste — no clone, no Preferences.** In the Textport
|
|
19
|
+
(`Dialogs → Textport and DATs`):
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
import urllib.request; exec(urllib.request.urlopen("https://raw.githubusercontent.com/Pantani/tdmcp/main/td/bootstrap.py").read().decode())
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
It downloads the bridge to `~/tdmcp-bridge/modules` and starts it on port 9980.
|
|
26
|
+
(Needs the repo reachable; if it is private, use B or C.)
|
|
27
|
+
|
|
28
|
+
**B. One line — after adding the module path.** Add the absolute path of
|
|
29
|
+
`td/modules` to **Preferences → "Python 64-bit Module Path"**, then in the
|
|
30
|
+
Textport:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from mcp import install; install.run()
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**C. From the terminal.** `npx @dpantani/tdmcp install-bridge` (or
|
|
37
|
+
`node dist/index.js install-bridge` from a clone) copies the bridge to
|
|
38
|
+
`~/tdmcp-bridge` and prints exactly what to paste in the Textport.
|
|
39
|
+
|
|
40
|
+
### Make a reusable .tox (drag-and-drop)
|
|
41
|
+
|
|
42
|
+
Run this once in your own TouchDesigner to bake a component you can drag into any
|
|
43
|
+
project:
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
from mcp import install
|
|
47
|
+
install.export("/path/to/mcp_webserver_base.tox", modules_dir="/abs/path/to/td/modules")
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Commit that `.tox`; from then on the bridge install is just dragging it in. Pass
|
|
51
|
+
`modules_dir` so the import path travels inside the `.tox`; otherwise the target
|
|
52
|
+
machine still needs `td/modules` on its Preferences module path.
|
|
53
|
+
|
|
54
|
+
## Layout
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
td/
|
|
58
|
+
├── modules/
|
|
59
|
+
│ ├── mcp/
|
|
60
|
+
│ │ ├── controllers/api_controller.py # HTTP router + JSON envelope
|
|
61
|
+
│ │ ├── dev.py # reload_bridge(): hot-reload modules in a running TD
|
|
62
|
+
│ │ └── services/
|
|
63
|
+
│ │ ├── api_service.py # node CRUD, exec, method, info
|
|
64
|
+
│ │ ├── preview_service.py # TOP → base64 PNG
|
|
65
|
+
│ │ ├── batch_service.py # create/update/delete/connect
|
|
66
|
+
│ │ └── analysis_service.py # errors/topology/performance
|
|
67
|
+
│ └── utils/version.py
|
|
68
|
+
└── templates/webserver_callbacks.py # Web Server DAT callbacks
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Developing the bridge
|
|
72
|
+
|
|
73
|
+
TouchDesigner imports the bridge modules once at project open, so editing files under
|
|
74
|
+
`td/` does **not** update a running bridge — it keeps serving the code it loaded. After
|
|
75
|
+
editing, reload without reopening the project:
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from mcp import dev
|
|
79
|
+
dev.reload_bridge() # reimports every mcp.* / utils.* module; returns the names reloaded
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Bump `BRIDGE_VERSION` in `modules/utils/version.py` on every bridge change. `get_td_info`
|
|
83
|
+
reports the *running* bridge's version, so when it lags the repo you know the running
|
|
84
|
+
bridge is stale and should be reloaded (or the project reopened).
|
|
85
|
+
|
|
86
|
+
## Manual install (Web Server DAT, ≈2 minutes)
|
|
87
|
+
|
|
88
|
+
Prefer to wire it by hand, or can't run the options above? Do it manually:
|
|
89
|
+
|
|
90
|
+
1. Copy the `td/modules` folder into your project folder, e.g.
|
|
91
|
+
`<yourproject>/tdmcp/modules` (so you have `<yourproject>/tdmcp/modules/mcp/...`).
|
|
92
|
+
2. In TouchDesigner, add a **Web Server DAT**.
|
|
93
|
+
- Set **Port** to `9980` (must match `TDMCP_TD_PORT`).
|
|
94
|
+
- Set **Active** to On.
|
|
95
|
+
3. Point the Web Server DAT's **Callbacks DAT** at a Text DAT containing the
|
|
96
|
+
contents of `td/templates/webserver_callbacks.py`. If you copied the modules
|
|
97
|
+
somewhere other than `<project>/tdmcp/modules`, edit the `_MODULES` path at
|
|
98
|
+
the top of that file.
|
|
99
|
+
4. Save the project. The bridge is now listening.
|
|
100
|
+
|
|
101
|
+
Verify from a terminal:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
curl http://127.0.0.1:9980/api/info
|
|
105
|
+
# {"ok":true,"data":{"python_version":"3.11.x","td_version":"...","bridge_version":"0.1.0"}}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Then run the live smoke test from the repo root:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
npm run smoke:live
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Global auto-install (recommended)
|
|
115
|
+
|
|
116
|
+
Instead of wiring a Web Server DAT per project, use the self-installing
|
|
117
|
+
`td/startup.py` so the bridge comes up automatically in any project:
|
|
118
|
+
|
|
119
|
+
1. Add the absolute path of `td/modules` to **Preferences → "Python 64-bit
|
|
120
|
+
Module Path"** so `import mcp...` works everywhere. Then leave
|
|
121
|
+
`MODULES_DIR = ""` in `startup.py`; otherwise set it to that absolute path.
|
|
122
|
+
2. Add an **Execute DAT** and paste the contents of `td/startup.py` into it.
|
|
123
|
+
3. Turn ON the Execute DAT's **Start** and **Create** toggles. It creates and
|
|
124
|
+
configures `tdmcp_webserver` (port 9980) plus its callbacks on project open.
|
|
125
|
+
4. To apply it to every *new* project, save this project as your **Default
|
|
126
|
+
Project** (Preferences) with that Execute DAT included.
|
|
127
|
+
|
|
128
|
+
`install()` is idempotent — re-running just reconfigures the existing ops, so
|
|
129
|
+
it is safe to leave the Execute DAT in place permanently.
|
|
130
|
+
|
|
131
|
+
## Endpoints
|
|
132
|
+
|
|
133
|
+
| Method | Path | Purpose |
|
|
134
|
+
| --- | --- | --- |
|
|
135
|
+
| GET | `/api/info` | TD/Python/bridge versions |
|
|
136
|
+
| POST | `/api/nodes` | create node `{parent_path,type,name?,parameters?}` |
|
|
137
|
+
| GET | `/api/nodes?parent=…` | list children |
|
|
138
|
+
| GET | `/api/nodes/{path}` | node detail (path is percent-encoded) |
|
|
139
|
+
| PATCH | `/api/nodes/{path}` | update `{parameters}` |
|
|
140
|
+
| DELETE | `/api/nodes/{path}` | delete node |
|
|
141
|
+
| POST | `/api/exec` | run Python `{script,return_output?}` |
|
|
142
|
+
| POST | `/api/nodes/{path}/method` | call `{method,args?,kwargs?}` |
|
|
143
|
+
| GET | `/api/nodes/{path}/errors` | node errors |
|
|
144
|
+
| GET | `/api/preview/{path}` | TOP as base64 PNG |
|
|
145
|
+
| POST | `/api/batch` | `{operations:[…]}` (create/update/delete/connect) |
|
|
146
|
+
| GET | `/api/network/{path}/errors` | recursive errors |
|
|
147
|
+
| GET | `/api/network/{path}/topology` | nodes + connections |
|
|
148
|
+
| GET | `/api/network/{path}/performance` | cook times |
|
|
149
|
+
|
|
150
|
+
All responses use the envelope `{ "ok": true, "data": … }` or
|
|
151
|
+
`{ "ok": false, "error": { "message": … } }`.
|
|
152
|
+
|
|
153
|
+
## Notes / known limitations
|
|
154
|
+
|
|
155
|
+
- Operator types are resolved with a regex-guarded `eval` of the type name (TD
|
|
156
|
+
exposes operator classes globally). Only `[A-Za-z][A-Za-z0-9_]*` is accepted.
|
|
157
|
+
- `preview` returns the TOP at its native resolution; the requested width/height
|
|
158
|
+
are advisory in this version.
|
|
159
|
+
- WebSocket event streaming (errors/cook/preview) is stubbed in the callbacks and
|
|
160
|
+
not yet consumed by the server.
|
package/td/bootstrap.py
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"""One-paste TouchDesigner bridge bootstrap (no clone, no Preferences).
|
|
2
|
+
|
|
3
|
+
Paste this single line into the Textport (Dialogs -> Textport and DATs) and the
|
|
4
|
+
bridge installs itself and starts:
|
|
5
|
+
|
|
6
|
+
import urllib.request; exec(urllib.request.urlopen("https://raw.githubusercontent.com/Pantani/tdmcp/main/td/bootstrap.py").read().decode())
|
|
7
|
+
|
|
8
|
+
It downloads just the bridge modules to ~/tdmcp-bridge/modules, puts them on
|
|
9
|
+
sys.path for this session, and runs install.run() -> a tdmcp_bridge on port 9980.
|
|
10
|
+
|
|
11
|
+
Requires the GitHub repo (or release zip) to be reachable. If your repo is
|
|
12
|
+
private, point REPO_ZIP at a public release asset, or use `install-bridge`
|
|
13
|
+
(`node dist/index.js install-bridge`) from a local checkout instead.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import io
|
|
17
|
+
import os
|
|
18
|
+
import sys
|
|
19
|
+
import zipfile
|
|
20
|
+
import urllib.request
|
|
21
|
+
|
|
22
|
+
REPO_ZIP = "https://github.com/Pantani/tdmcp/archive/refs/heads/main.zip"
|
|
23
|
+
DEST = os.path.expanduser("~/tdmcp-bridge")
|
|
24
|
+
_MARKER = "/td/modules/"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def fetch_modules(repo_zip=REPO_ZIP, dest=DEST):
|
|
28
|
+
"""Download the repo zip and extract only its td/modules tree into dest/modules."""
|
|
29
|
+
modules_dir = os.path.join(dest, "modules")
|
|
30
|
+
try:
|
|
31
|
+
data = urllib.request.urlopen(repo_zip, timeout=30).read()
|
|
32
|
+
except Exception as exc: # noqa: BLE001 - surface a friendly hint in the Textport
|
|
33
|
+
raise RuntimeError(
|
|
34
|
+
"[tdmcp] Could not download the bridge from %r (%s). If the repo is "
|
|
35
|
+
"private, use a public release asset or the local 'install-bridge' "
|
|
36
|
+
"command instead." % (repo_zip, exc)
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
zf = zipfile.ZipFile(io.BytesIO(data))
|
|
40
|
+
os.makedirs(modules_dir, exist_ok=True)
|
|
41
|
+
extracted = 0
|
|
42
|
+
for name in zf.namelist():
|
|
43
|
+
if name.endswith("/"):
|
|
44
|
+
continue
|
|
45
|
+
idx = name.find(_MARKER)
|
|
46
|
+
if idx == -1:
|
|
47
|
+
continue
|
|
48
|
+
rel = name[idx + len(_MARKER):]
|
|
49
|
+
if not rel:
|
|
50
|
+
continue
|
|
51
|
+
target = os.path.join(modules_dir, rel)
|
|
52
|
+
os.makedirs(os.path.dirname(target), exist_ok=True)
|
|
53
|
+
with zf.open(name) as src, open(target, "wb") as out:
|
|
54
|
+
out.write(src.read())
|
|
55
|
+
extracted += 1
|
|
56
|
+
|
|
57
|
+
if extracted == 0:
|
|
58
|
+
raise RuntimeError("[tdmcp] Downloaded archive had no td/modules — wrong REPO_ZIP?")
|
|
59
|
+
print("[tdmcp] bridge modules -> %s (%d files)" % (modules_dir, extracted))
|
|
60
|
+
return modules_dir
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def run(repo_zip=REPO_ZIP, dest=DEST, port=9980):
|
|
64
|
+
modules_dir = fetch_modules(repo_zip, dest)
|
|
65
|
+
if modules_dir not in sys.path:
|
|
66
|
+
sys.path.insert(0, modules_dir)
|
|
67
|
+
from mcp import install
|
|
68
|
+
|
|
69
|
+
return install.run(port=port, modules_dir=modules_dir)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# Running via exec(urlopen(...).read()) or as a script kicks off the install.
|
|
73
|
+
run()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""tdmcp TouchDesigner bridge package."""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""HTTP controllers for the tdmcp bridge."""
|