@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 tdmcp contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
# tdmcp — build TouchDesigner from plain language
|
|
2
|
+
|
|
3
|
+
**tdmcp** lets you create real visual systems in
|
|
4
|
+
[TouchDesigner](https://derivative.ca) just by describing them to an AI assistant
|
|
5
|
+
(Claude, Cursor, …). You type what you want; the AI builds the actual network of
|
|
6
|
+
nodes inside your project, checks it for errors, and shows you a preview.
|
|
7
|
+
|
|
8
|
+
> *"Create a feedback tunnel from noise with blur and displace, then add bloom and
|
|
9
|
+
> output it to a window."*
|
|
10
|
+
|
|
11
|
+
…and the nodes appear, wired up, in your `/project1`.
|
|
12
|
+
|
|
13
|
+
It works because it pairs two things every other tool was missing:
|
|
14
|
+
|
|
15
|
+
- **Real knowledge** — an embedded reference of 629 operators, 68 Python classes,
|
|
16
|
+
32 workflow patterns, GLSL techniques and tutorials, so the AI uses real
|
|
17
|
+
TouchDesigner operators instead of guessing.
|
|
18
|
+
- **Real execution** — a small **bridge** running inside TouchDesigner that
|
|
19
|
+
actually creates, connects, inspects and previews nodes — with a
|
|
20
|
+
create → verify → preview loop so the AI can see and fix its own work.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## How it works
|
|
25
|
+
|
|
26
|
+
Three pieces talk to each other on your computer:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
You + your AI tdmcp server TouchDesigner
|
|
30
|
+
(Claude / Cursor) ─▶ (a small program) ─▶ (the bridge inside TD)
|
|
31
|
+
"make a feedback builds real nodes
|
|
32
|
+
tunnel from noise" in /project1
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
1. **Your AI assistant** — where you type what you want.
|
|
36
|
+
2. **The tdmcp server** — a small Node program that gives the AI a set of
|
|
37
|
+
TouchDesigner "tools" and the operator knowledge base. You install it once.
|
|
38
|
+
3. **The bridge** — a tiny piece that runs *inside* TouchDesigner so the server
|
|
39
|
+
can actually drive it. You switch it on once per machine.
|
|
40
|
+
|
|
41
|
+
You set all three up below. It takes about 5 minutes.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## What you'll need
|
|
46
|
+
|
|
47
|
+
- **[TouchDesigner](https://derivative.ca/download)** (free non-commercial
|
|
48
|
+
edition is fine).
|
|
49
|
+
- **[Node.js](https://nodejs.org) version 20 or newer** — this runs the server.
|
|
50
|
+
Not sure if you have it? Open a terminal and run `node -v`. If it prints a
|
|
51
|
+
number ≥ 20 you're set; otherwise install it from the link.
|
|
52
|
+
- An MCP-capable AI client: **Claude Code**, **Claude Desktop**, or **Cursor**.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Get started
|
|
57
|
+
|
|
58
|
+
Setup is **two pieces**: the **bridge** inside TouchDesigner (so it can be
|
|
59
|
+
driven) and the **tdmcp server** connected to your AI. Below, pick the path for
|
|
60
|
+
your AI client — **every path also needs the bridge in Step 2.** Budget ~5 min.
|
|
61
|
+
|
|
62
|
+
> **Which path?** Claude Desktop → the one-click extension just below. Claude
|
|
63
|
+
> Code or Cursor → Steps 1–3.
|
|
64
|
+
|
|
65
|
+
> 🤖 **Or let an AI do it for you.** Hand
|
|
66
|
+
> [`tdmcp-install-prompt.md`](tdmcp-install-prompt.md) to Claude Code, Codex, or
|
|
67
|
+
> Cursor and it runs the install and client wiring itself — you only paste one
|
|
68
|
+
> line into TouchDesigner at the end. The manual steps below are the alternative
|
|
69
|
+
> if you'd rather drive it yourself.
|
|
70
|
+
|
|
71
|
+
### Claude Desktop: the one-click extension (`.dxt`) — easiest
|
|
72
|
+
|
|
73
|
+
A `.dxt` is a single file that Claude Desktop installs as an **extension**. The
|
|
74
|
+
tdmcp server is **bundled inside it**, and you set the TouchDesigner host/port in
|
|
75
|
+
a settings form — no JSON, no `claude mcp add`, nothing to keep running yourself.
|
|
76
|
+
|
|
77
|
+
**1. Get the `tdmcp.dxt` file.** Download the latest prebuilt bundle:
|
|
78
|
+
|
|
79
|
+
**[⬇ Download tdmcp.dxt](https://github.com/Pantani/tdmcp/releases/latest/download/tdmcp.dxt)** — always the newest release.
|
|
80
|
+
|
|
81
|
+
<details>
|
|
82
|
+
<summary>Or build it yourself (needs <a href="https://nodejs.org">Node 20+</a>)</summary>
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
git clone https://github.com/Pantani/tdmcp.git
|
|
86
|
+
cd tdmcp
|
|
87
|
+
npm install
|
|
88
|
+
npm run build:dxt # writes tdmcp.dxt into this folder
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
</details>
|
|
92
|
+
|
|
93
|
+
**2. Install it in Claude Desktop.** Open **Settings → Extensions**, choose
|
|
94
|
+
**Install from file** (or drag `tdmcp.dxt` onto the window). When asked, set the
|
|
95
|
+
TouchDesigner **host** / **port** if they differ from `127.0.0.1` / `9980`, then
|
|
96
|
+
**enable** the extension.
|
|
97
|
+
|
|
98
|
+
**3. Turn on the bridge** inside TouchDesigner — do **Step 2** below. The
|
|
99
|
+
extension *drives* TouchDesigner; the bridge is what lets it in.
|
|
100
|
+
|
|
101
|
+
That's the whole Claude Desktop setup — skip to **Step 4** and start creating.
|
|
102
|
+
More detail (and the Docker/HTTP options) live in
|
|
103
|
+
[`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md).
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### Step 1 — Install the tdmcp server (once) · Claude Code / Cursor
|
|
108
|
+
|
|
109
|
+
Open a terminal and run these four lines. You only ever do this once.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
git clone https://github.com/Pantani/tdmcp.git
|
|
113
|
+
cd tdmcp
|
|
114
|
+
npm install
|
|
115
|
+
npm run build
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
When it finishes you'll have a ready-to-run server at `dist/index.js`.
|
|
119
|
+
|
|
120
|
+
> ⚡ **Shortcut:** instead of `npm install && npm run build`, run **`npm run
|
|
121
|
+
> setup`** (or `./setup.sh`). It installs, builds, and then prints the exact line
|
|
122
|
+
> to connect your AI — with your real paths already filled in.
|
|
123
|
+
|
|
124
|
+
> 💡 **Tip — you'll need this folder's full path twice below.** While you're
|
|
125
|
+
> still in the `tdmcp` folder, run `pwd`. Copy what it prints (e.g.
|
|
126
|
+
> `/Users/you/tdmcp`) — that's your **project path**. Wherever the steps below
|
|
127
|
+
> say `<project-path>`, paste it in.
|
|
128
|
+
|
|
129
|
+
### Step 2 — Switch on the bridge inside TouchDesigner
|
|
130
|
+
|
|
131
|
+
This lets the server actually control TouchDesigner. The easy, set-and-forget way:
|
|
132
|
+
|
|
133
|
+
1. **Open TouchDesigner.**
|
|
134
|
+
2. Open **Preferences** (`Edit → Preferences`, or the **TouchDesigner** menu on
|
|
135
|
+
macOS). In the **General** section, find **"Python 64-bit Module Path"** and
|
|
136
|
+
paste:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
<project-path>/td/modules
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
(That's the `tdmcp` folder you cloned — e.g. `/Users/you/tdmcp/td/modules`; run
|
|
143
|
+
`pwd` inside it if you're unsure of the full path.) Click OK.
|
|
144
|
+
3. Open the **Textport** (`Dialogs → Textport and DATs`), type this one line and
|
|
145
|
+
press Enter:
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
from mcp import install; install.run()
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
You should see:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
[tdmcp] bridge running on port 9980 (/project1/tdmcp_bridge)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Done — a `tdmcp_bridge` node now lives in your network and is listening. ✅
|
|
158
|
+
|
|
159
|
+
> This is **safe and reversible**: it only adds one tidy `tdmcp_bridge` component.
|
|
160
|
+
> Re-running the line just reconfigures it. To remove it later, run
|
|
161
|
+
> `from mcp import install; install.uninstall()`.
|
|
162
|
+
>
|
|
163
|
+
> Want it to start automatically in *every* project? Save the project (with that
|
|
164
|
+
> Module Path preference) as your **Default Project**, or see
|
|
165
|
+
> [`td/README.md`](td/README.md) for the Execute-DAT auto-start and the fully
|
|
166
|
+
> manual Web Server DAT setup.
|
|
167
|
+
|
|
168
|
+
**Two even-easier ways to do Step 2:**
|
|
169
|
+
|
|
170
|
+
- **No clone, no Preferences** — paste this single line into the Textport. It
|
|
171
|
+
fetches the bridge and starts it for you:
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
import urllib.request; exec(urllib.request.urlopen("https://raw.githubusercontent.com/Pantani/tdmcp/main/td/bootstrap.py").read().decode())
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
- **From the terminal** — if you installed the server with `npx` (so there's no
|
|
178
|
+
local `td/modules`), run `npx @dpantani/tdmcp install-bridge` (or
|
|
179
|
+
`node <project-path>/dist/index.js install-bridge` from a clone). It copies the
|
|
180
|
+
bridge to `~/tdmcp-bridge` and prints the exact line to paste in the Textport.
|
|
181
|
+
|
|
182
|
+
### Step 3 — Connect your AI assistant
|
|
183
|
+
|
|
184
|
+
Point your AI client at the server you built in Step 1. Pick your client:
|
|
185
|
+
|
|
186
|
+
**Claude Code**
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
claude mcp add tdmcp -- node <project-path>/dist/index.js
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
> Once tdmcp is published to npm this becomes path-free:
|
|
193
|
+
> `claude mcp add tdmcp -- npx -y @dpantani/tdmcp`.
|
|
194
|
+
|
|
195
|
+
**Claude Desktop** — the easiest route is the **one-click `.dxt` extension**
|
|
196
|
+
described at the top of *Get started* (no config file needed). To wire it up
|
|
197
|
+
manually instead, edit `claude_desktop_config.json`
|
|
198
|
+
(`Settings → Developer → Edit Config`) and add:
|
|
199
|
+
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"mcpServers": {
|
|
203
|
+
"tdmcp": {
|
|
204
|
+
"command": "node",
|
|
205
|
+
"args": ["<project-path>/dist/index.js"]
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Cursor** — create `.cursor/mcp.json` in your workspace:
|
|
212
|
+
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"mcpServers": {
|
|
216
|
+
"tdmcp": {
|
|
217
|
+
"command": "node",
|
|
218
|
+
"args": ["<project-path>/dist/index.js"]
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Restart your AI client so it picks up the new server.
|
|
225
|
+
|
|
226
|
+
### Step 4 — Make something
|
|
227
|
+
|
|
228
|
+
With TouchDesigner open and your AI client connected, just ask in plain language:
|
|
229
|
+
|
|
230
|
+
> *"Create an audio-reactive particle galaxy and show me a preview."*
|
|
231
|
+
|
|
232
|
+
The AI builds the network in your project, checks it for errors, and returns a
|
|
233
|
+
thumbnail. Iterate from there: *"make it warmer,"* *"add a feedback trail,"*
|
|
234
|
+
*"output it fullscreen."*
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Troubleshooting
|
|
239
|
+
|
|
240
|
+
| What you see | What to do |
|
|
241
|
+
| --- | --- |
|
|
242
|
+
| The AI says **"TouchDesigner isn't reachable."** | Make sure TD is open and the bridge is on (Step 2). Test it: `curl http://127.0.0.1:9980/api/info` should return JSON. |
|
|
243
|
+
| `from mcp import install` → **`No module named 'mcp'`** | The Module Path isn't set. Re-check Step 2.2 — it must point at `<project-path>/td/modules`, then restart TouchDesigner. |
|
|
244
|
+
| **`command not found: node` / `npm`** | Node isn't installed (or is too old). Install Node ≥ 20 from [nodejs.org](https://nodejs.org) and reopen the terminal. |
|
|
245
|
+
| **Your AI client doesn't list any tdmcp tools** | Restart the client after adding the server, and double-check the path to `dist/index.js` is the full absolute path. |
|
|
246
|
+
| **Port 9980 is already taken** | Set a different port in *both* places: the bridge (`install.run(port=9981)`) and the client (`TDMCP_TD_PORT=9981`). |
|
|
247
|
+
|
|
248
|
+
The server runs fine even when TouchDesigner is closed — TD-dependent tools just
|
|
249
|
+
return a friendly "not reachable" message instead of crashing.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## What you can do
|
|
254
|
+
|
|
255
|
+
**Artist tools** (describe the result, get a whole network):
|
|
256
|
+
`create_visual_system`, `create_feedback_network`, `create_generative_art`,
|
|
257
|
+
`create_audio_reactive`, `create_particle_system`, `create_data_visualization`,
|
|
258
|
+
`apply_post_processing`, `setup_output`, `get_preview`, `plan_visual`.
|
|
259
|
+
|
|
260
|
+
**Building blocks**: `create_node_chain`, `connect_nodes`, `create_glsl_shader`,
|
|
261
|
+
`create_python_script`, `set_parameters_batch`, `create_container`,
|
|
262
|
+
`duplicate_network`.
|
|
263
|
+
|
|
264
|
+
**Atomic operations**: `create_td_node`, `delete_td_node`,
|
|
265
|
+
`update_td_node_parameters`, `execute_python_script`, `exec_node_method`.
|
|
266
|
+
|
|
267
|
+
**Inspect & analyze**: `get_td_info`, `get_td_nodes`, `get_td_node_parameters`,
|
|
268
|
+
`get_td_node_errors`, `get_td_performance`, `get_td_topology`, `get_td_classes`,
|
|
269
|
+
`get_td_class_details`, `get_module_help` (plus search / summary / compare /
|
|
270
|
+
snapshot helpers).
|
|
271
|
+
|
|
272
|
+
**Recipes** — 10 validated, ready-to-build templates: `feedback_tunnel`,
|
|
273
|
+
`reaction_diffusion`, `noise_landscape`, `audio_spectrum_bars`, `particle_galaxy`,
|
|
274
|
+
`webcam_glitch`, `data_sonification`, `kinect_silhouette`, `led_strip_mapper`,
|
|
275
|
+
`projection_mapping`.
|
|
276
|
+
|
|
277
|
+
**Knowledge resources** the AI reads from:
|
|
278
|
+
`tdmcp://operators/{category|name}`, `tdmcp://python-api/{class}`,
|
|
279
|
+
`tdmcp://patterns/{name}`, `tdmcp://glsl/{name}`, `tdmcp://recipes/{name}`,
|
|
280
|
+
`tdmcp://tutorials/{name}`.
|
|
281
|
+
|
|
282
|
+
**Prompt modes**: `visual_artist_mode`, `debug_network`, `optimize_performance`,
|
|
283
|
+
`explain_network`, `remix_visual`.
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Architecture (for developers)
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
MCP client ──stdio──▶ tdmcp server (Node/TS) ──HTTP──▶ TouchDesigner bridge (Python)
|
|
291
|
+
├── Layer 1 artist tools (create_visual_system, …)
|
|
292
|
+
├── Layer 2 building blocks (create_node_chain, …)
|
|
293
|
+
├── Layer 3 atomic ops (create_td_node, …)
|
|
294
|
+
├── Knowledge base (MCP resources)
|
|
295
|
+
├── Recipes (validated network templates)
|
|
296
|
+
└── Feedback engine (errors / preview / performance)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Environment variables
|
|
300
|
+
|
|
301
|
+
| Variable | Default | Description |
|
|
302
|
+
| --- | --- | --- |
|
|
303
|
+
| `TDMCP_TD_HOST` | `127.0.0.1` | TouchDesigner bridge host |
|
|
304
|
+
| `TDMCP_TD_PORT` | `9980` | Web Server DAT port |
|
|
305
|
+
| `TDMCP_TRANSPORT` | `stdio` | MCP transport: `stdio` (default) or `http` (Streamable HTTP) |
|
|
306
|
+
| `TDMCP_HTTP_PORT` | `3939` | Port for the HTTP transport (when `TDMCP_TRANSPORT=http`) |
|
|
307
|
+
| `TDMCP_EVENTS` | `on` | Subscribe to TD WebSocket events and forward them as MCP logging notifications (`on`/`off`) |
|
|
308
|
+
| `TDMCP_RAW_PYTHON` | `on` | Whether to expose the raw-Python escape-hatch tools (`execute_python_script`, `exec_node_method`). Set to `off` to lock them out for restricted setups |
|
|
309
|
+
| `TDMCP_BRIDGE_TOKEN` | _(unset)_ | Optional shared bearer token. When set, the server sends it and the bridge requires it — set the **same** value in TouchDesigner's environment to turn auth on |
|
|
310
|
+
| `TDMCP_BRIDGE_ALLOW_EXEC` | `1` | **Set in TouchDesigner's environment.** Set to `0`/`false`/`off` to make the bridge refuse the arbitrary-code endpoints (`/api/exec`, node `method`) — enforced bridge-side, even for direct network callers |
|
|
311
|
+
| `TDMCP_LOG_LEVEL` | `info` | `debug` / `info` / `warn` / `error` / `silent` (stderr) |
|
|
312
|
+
| `TDMCP_REQUEST_TIMEOUT_MS` | `10000` | Per-request timeout to the bridge |
|
|
313
|
+
|
|
314
|
+
The HTTP transport (`TDMCP_TRANSPORT=http`) serves MCP at `POST/GET/DELETE /mcp`
|
|
315
|
+
on `127.0.0.1:$TDMCP_HTTP_PORT` with stateful sessions — handy for remote/headless
|
|
316
|
+
setups. See [`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md) for Docker and the Claude
|
|
317
|
+
Desktop `.dxt` extension.
|
|
318
|
+
|
|
319
|
+
### Security
|
|
320
|
+
|
|
321
|
+
The TouchDesigner bridge runs **arbitrary Python inside your TD process** (that is
|
|
322
|
+
what lets the assistant build networks for you). Treat it like an open door to the
|
|
323
|
+
machine TD runs on:
|
|
324
|
+
|
|
325
|
+
- **The Web Server DAT listens on its port (default `9980`) on all network
|
|
326
|
+
interfaces.** Anyone who can reach `http://<your-ip>:9980` can run code on that
|
|
327
|
+
machine. Only run it on a trusted network, and/or firewall the port to localhost.
|
|
328
|
+
- **Turn on bridge auth for untrusted networks:** set `TDMCP_BRIDGE_TOKEN` to a
|
|
329
|
+
shared secret in **both** the MCP server's environment and TouchDesigner's
|
|
330
|
+
environment. The bridge then rejects any request without a matching
|
|
331
|
+
`Authorization: Bearer <token>` (HTTP `401`). Unset (default) keeps the
|
|
332
|
+
zero-config local flow.
|
|
333
|
+
- `TDMCP_RAW_PYTHON=off` hides the raw-Python MCP tools, but it only gates the
|
|
334
|
+
**MCP-server side** — a direct network caller could still hit the bridge's
|
|
335
|
+
`/api/exec` and node-`method` endpoints. To close them at the bridge itself, set
|
|
336
|
+
`TDMCP_BRIDGE_ALLOW_EXEC=0` in TouchDesigner's environment (defense in depth that
|
|
337
|
+
holds even without a token); the structured endpoints keep working.
|
|
338
|
+
- The MCP server itself binds to loopback (`127.0.0.1`) for both stdio and HTTP
|
|
339
|
+
transports and enables DNS-rebinding protection on HTTP.
|
|
340
|
+
|
|
341
|
+
### Command-line agent (`tdmcp-agent`)
|
|
342
|
+
|
|
343
|
+
The package also installs a second binary, `tdmcp-agent`, that drives the same
|
|
344
|
+
tools from a shell with machine-readable output — useful for scripts and CI:
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
tdmcp-agent --help # list commands
|
|
348
|
+
tdmcp-agent info # health check + TD/bridge info
|
|
349
|
+
tdmcp-agent nodes find --params '{"parent_path":"/project1","type":"TOP"}'
|
|
350
|
+
tdmcp-agent nodes create --dry-run --params '{"parent_path":"/project1","type":"noiseTOP"}'
|
|
351
|
+
tdmcp-agent schema "nodes create" # print a command's JSON Schema
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
Output format is `--output json` (default) / `ndjson` / `text`. Mutating commands
|
|
355
|
+
are tagged `mutates`; the Python escape hatches require `--allow-unsafe` and honour
|
|
356
|
+
`TDMCP_RAW_PYTHON=off`.
|
|
357
|
+
|
|
358
|
+
### Scripts
|
|
359
|
+
|
|
360
|
+
| Script | Purpose |
|
|
361
|
+
| --- | --- |
|
|
362
|
+
| `npm run setup` | guided install + build, then prints how to connect your client |
|
|
363
|
+
| `npm run dev` | run the server from source (stdio) |
|
|
364
|
+
| `npm run build` | typecheck + bundle + copy assets to `dist/` |
|
|
365
|
+
| `npm test` | unit + integration tests (Vitest + MSW) |
|
|
366
|
+
| `npm run typecheck` / `npm run lint` | TypeScript / Biome |
|
|
367
|
+
| `npm run smoke:live` | end-to-end test against a running TD |
|
|
368
|
+
| `npm run validate:recipes` | validate every recipe JSON |
|
|
369
|
+
| `npm run import:bottobot` | (re)build the embedded knowledge base — only needed to refresh it |
|
|
370
|
+
| `npm run build:dxt` | package a Claude Desktop `.dxt` extension (see `docs/DEPLOYMENT.md`) |
|
|
371
|
+
|
|
372
|
+
> The knowledge base ships in the repo, so a fresh clone needs only
|
|
373
|
+
> `npm install && npm run build`. `import:bottobot` is a maintenance command for
|
|
374
|
+
> regenerating it from `@bottobot/td-mcp`.
|
|
375
|
+
|
|
376
|
+
### Verify end-to-end
|
|
377
|
+
|
|
378
|
+
With TD open and the bridge running:
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
npm run smoke:live # creates a Noise→Null chain in /project1 and grabs a preview
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## Current state
|
|
387
|
+
|
|
388
|
+
- ✅ 35 tools across 3 layers, 6 resource families, 5 prompts, 10 recipes, a
|
|
389
|
+
feedback engine, and the TouchDesigner Python bridge.
|
|
390
|
+
- ✅ Two transports: **stdio** (default) and **Streamable HTTP**; plus an optional
|
|
391
|
+
**WebSocket event stream** (TD → MCP logging notifications).
|
|
392
|
+
- ✅ `typecheck`, `build`, `lint`, and `test` all pass; the server boots over
|
|
393
|
+
stdio with clean stdout.
|
|
394
|
+
- 🔌 Verified end-to-end against a live TouchDesigner (CRUD, preview, batch, and
|
|
395
|
+
`node.created`/`node.deleted` events).
|
|
396
|
+
|
|
397
|
+
## Known limitations
|
|
398
|
+
|
|
399
|
+
- **WebSocket events** (`node.created` / `node.deleted` / `node.error` /
|
|
400
|
+
`project.saved` / `timeline.frame` / `node.cook`) are forwarded as MCP logging
|
|
401
|
+
notifications on both transports. High-frequency events (`timeline.frame`,
|
|
402
|
+
`node.cook`) are dropped by the consumer unless explicitly opted in.
|
|
403
|
+
- **Audio / particle / 3D builders and the exotic recipes** (kinect, LED,
|
|
404
|
+
projection) produce valid, connected networks but use best-effort TD parameter
|
|
405
|
+
names — fine-tuning may be needed, and they emit warnings to that effect.
|
|
406
|
+
- **Preview** returns the TOP at its native resolution (the requested size is
|
|
407
|
+
advisory).
|
|
408
|
+
- The bridge ships as Python modules plus a callbacks template (a binary `.tox`
|
|
409
|
+
can't be generated from source); the one-liner in Step 2 assembles it for you.
|
|
410
|
+
|
|
411
|
+
## License
|
|
412
|
+
|
|
413
|
+
MIT — see [LICENSE](LICENSE).
|