├── python2.7libs
├── pythonrc.py
├── batch_rscmdline.py
├── batch_gconvert.py
├── setupProject.py
├── batchTools.py
└── kdbrautils.py
├── otls
├── vc.create_links.1.0.hda
├── kdbra.kdbra_cluster.1.0.hda
├── kdbra.kdbra_fg_plate.1.0.hda
├── kdbra.kdbra_N_to_orient.1.0.hda
├── kdbra.kdbra_RBD_source.1.0.hda
├── kdbra.kdbra_cache_crowd.1.0.hda
├── kdbra.kdbra_dailieser.1.0.hda
├── kdbra.kdbra_dailieser.2.0.otllc
├── kdbra.kdbra_hf_from_geo.1.0.hda
├── kdbra.kdbra_polyfolding.1.0.hda
├── kdbra.kdbra_polyfolding.1.1.hda
├── kdbra.kdbra_quad_sphere.1.0.hda
├── kdbra.kdbra_rand_orient.1.0.hda
├── kdbra.kdbra_attrib_bounds.1.0.hda
├── kdbra.kdbra_crowd_system.1.0.hda
├── kdbra.kdbra_crowd_system.1.1.hda
├── kdbra.kdbra_crowd_system.1.2.hda
├── kdbra.kdbra_crowd_system.1.3.hda
├── kdbra.kdbra_export_camera.1.0.hda
├── kdbra.kdbra_focus_puller.1.0.hda
├── kdbra.kdbra_focus_puller.1.1.hda
├── kdbra.kdbra_geo_to_lines.1.0.hda
├── kdbra.kdbra_geo_to_rects.1.0.hda
├── kdbra.kdbra_noise_falloff.1.0.hda
├── kdbra.kdbra_rig_copy_rot.1.0.hda
├── kdbra.kdbra_rig_copy_rot.1.1.hda
├── kdbra.kdbra_spiral_basic.1.0.hda
├── kdbra.kdbra_uv_triplanar.0.1.hda
├── kdbra.kdbra_animation_bounds.1.0.hda
├── kdbra.kdbra_attrib_falloff.1.0.hda
├── kdbra.kdbra_bbox_falloff.1.0.otllc
├── kdbra.kdbra_blast_inside_geo.1.0.hda
├── kdbra.kdbra_camera_frustrum.1.0.hda
├── kdbra.kdbra_crowd_agent_load.1.0.hda
├── kdbra.kdbra_crowd_clip_loop.1.0.hda
├── kdbra.kdbra_crowd_clip_loop.1.1.hda
├── kdbra.kdbra_crowd_clip_loop.1.2.hda
├── kdbra.kdbra_generate_rocks.1.0.hda
├── kdbra.kdbra_hf_mask_invert.1.0.hda
├── kdbra.kdbra_magnetic_field.1.0.hda
├── kdbra.kdbra_polyline_scatter.1.0.hda
├── kdbra.kdbra_random_falloff.1.0.hda
├── kdbra.kdbra_rbd_distribute.1.0.hda
├── kdbra.kdbra_rbd_pin_to_world.1.0.hda
├── kdbra.kdbra_spiral_from_poly.1.0.hda
├── kdbra.kdbra_spread_falloff.1.0.hda
├── kdbra.kdbra_voronoi_falloff.1.0.hda
├── kdbra.kdbra_add_instance_point.1.0.hda
├── kdbra.kdbra_agent_spreadsheet.1.0.hda
├── kdbra.kdbra_cam_fov_visualize.1.0.hda
├── kdbra.kdbra_setup_rs_instances.1.0.hda
├── kdbra.kdbra_stabilized_camera.1.0.hda
├── kdbra.kdbra_camera_frustrum_cut.1.0.hda
├── kdbra.kdbra_crowd_agent_fix_clip.1.0.hda
├── kdbra.kdbra_crowd_formation_march.1.0.hda
├── kdbra.kdbra_crowd_formation_march.1.2.hda
├── kdbra.kdbra_crowd_formation_march.1.3.hda
├── kdbra.kdbra_crowd_formation_march.1.4.hda
├── kdbra.kdbra_crowd_formation_march.1.5.hda
├── kdbra.kdbra_flip_suction_source.1.0.hda
├── kdbra.kdbra_remove_by_attribute.1.0.hda
├── kdbra.kdbra_rig_attach_to_joints.1.0.hda
├── kdbra.kdbra_convex_hulls_from_pieces.1.0.hda
└── kdbra.kdbra_rbd_constraints_from_lines.1.0.hda
├── kdbra.json
├── toolbar
├── sobor.shelf
├── export_nodes.shelf
├── clear_rig_pose_translates.shelf
├── export_selected_nodes.shelf
├── kdbra.shelf
├── fix_crowd_cache.shelf
├── find_replace.shelf
├── create_merges.shelf
├── kdbr_import_json_camera.shelf
├── open_create.shelf
├── import_3de_2d_pts_as_nulls.shelf
└── crowd_setup.shelf
├── readme.md
├── LICENSE
├── .gitignore
└── desktop
└── wide_sc.desk
/python2.7libs/pythonrc.py:
--------------------------------------------------------------------------------
1 | import hou
2 |
3 |
--------------------------------------------------------------------------------
/otls/vc.create_links.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/vc.create_links.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_cluster.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_cluster.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_fg_plate.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_fg_plate.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_N_to_orient.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_N_to_orient.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_RBD_source.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_RBD_source.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_cache_crowd.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_cache_crowd.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_dailieser.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_dailieser.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_dailieser.2.0.otllc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_dailieser.2.0.otllc
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_hf_from_geo.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_hf_from_geo.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_polyfolding.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_polyfolding.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_polyfolding.1.1.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_polyfolding.1.1.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_quad_sphere.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_quad_sphere.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_rand_orient.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_rand_orient.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_attrib_bounds.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_attrib_bounds.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_system.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_system.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_system.1.1.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_system.1.1.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_system.1.2.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_system.1.2.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_system.1.3.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_system.1.3.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_export_camera.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_export_camera.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_focus_puller.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_focus_puller.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_focus_puller.1.1.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_focus_puller.1.1.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_geo_to_lines.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_geo_to_lines.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_geo_to_rects.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_geo_to_rects.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_noise_falloff.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_noise_falloff.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_rig_copy_rot.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_rig_copy_rot.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_rig_copy_rot.1.1.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_rig_copy_rot.1.1.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_spiral_basic.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_spiral_basic.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_uv_triplanar.0.1.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_uv_triplanar.0.1.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_animation_bounds.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_animation_bounds.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_attrib_falloff.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_attrib_falloff.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_bbox_falloff.1.0.otllc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_bbox_falloff.1.0.otllc
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_blast_inside_geo.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_blast_inside_geo.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_camera_frustrum.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_camera_frustrum.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_agent_load.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_agent_load.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_clip_loop.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_clip_loop.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_clip_loop.1.1.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_clip_loop.1.1.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_clip_loop.1.2.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_clip_loop.1.2.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_generate_rocks.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_generate_rocks.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_hf_mask_invert.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_hf_mask_invert.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_magnetic_field.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_magnetic_field.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_polyline_scatter.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_polyline_scatter.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_random_falloff.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_random_falloff.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_rbd_distribute.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_rbd_distribute.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_rbd_pin_to_world.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_rbd_pin_to_world.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_spiral_from_poly.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_spiral_from_poly.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_spread_falloff.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_spread_falloff.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_voronoi_falloff.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_voronoi_falloff.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_add_instance_point.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_add_instance_point.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_agent_spreadsheet.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_agent_spreadsheet.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_cam_fov_visualize.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_cam_fov_visualize.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_setup_rs_instances.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_setup_rs_instances.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_stabilized_camera.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_stabilized_camera.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_camera_frustrum_cut.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_camera_frustrum_cut.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_agent_fix_clip.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_agent_fix_clip.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_formation_march.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_formation_march.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_formation_march.1.2.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_formation_march.1.2.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_formation_march.1.3.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_formation_march.1.3.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_formation_march.1.4.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_formation_march.1.4.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_crowd_formation_march.1.5.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_crowd_formation_march.1.5.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_flip_suction_source.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_flip_suction_source.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_remove_by_attribute.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_remove_by_attribute.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_rig_attach_to_joints.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_rig_attach_to_joints.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_convex_hulls_from_pieces.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_convex_hulls_from_pieces.1.0.hda
--------------------------------------------------------------------------------
/otls/kdbra.kdbra_rbd_constraints_from_lines.1.0.hda:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kdbra/kdbra-houdini-tools/HEAD/otls/kdbra.kdbra_rbd_constraints_from_lines.1.0.hda
--------------------------------------------------------------------------------
/kdbra.json:
--------------------------------------------------------------------------------
1 | {
2 | "env" :
3 | [
4 | {
5 | "HOUDINI_PATH" :
6 | {
7 | "value": "~/kdbra-houdini-tools/",
8 | "method": "prepend"
9 | }
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/toolbar/sobor.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/python2.7libs/batch_rscmdline.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | import argparse, subprocess, glob, os.path
3 |
4 | parser = argparse.ArgumentParser(description='Batch render .rs')
5 | parser.add_argument('-i', '--input', type=str, help='input pattern', default="./*.rs")
6 |
7 | args = parser.parse_args()
8 | items = glob.glob(args.input)
9 | items.sort()
10 | for item in items:
11 | print(item)
12 | for item in items:
13 | subprocess.call(["/usr/redshift/bin/redshiftCmdLine", item])
14 | print("{} rendered".format(item))
--------------------------------------------------------------------------------
/toolbar/export_nodes.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/toolbar/clear_rig_pose_translates.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/python2.7libs/batch_gconvert.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | import argparse, subprocess, glob, os.path
3 |
4 | parser = argparse.ArgumentParser(description='Batch convert Houdini geometry')
5 | parser.add_argument('input_dir', type=str, help='directory')
6 | parser.add_argument('-i', '--input_format', type=str, help='input format', default="geo")
7 | parser.add_argument('-o', '--output_format', type=str, help='output format', default="bgeo.sc")
8 |
9 | args = parser.parse_args()
10 | items = glob.glob(os.path.join(args.input_dir, "*." + args.input_format))
11 |
12 | for item in items:
13 | path, filename = os.path.split(item)
14 | name, ext = os.path.splitext(filename)
15 | new_path = os.path.join(path, '%s.%s' % (name, args.output_format))
16 | subprocess.call(["gconvert", item, new_path])
17 | print "{} converted to {}".format(item, args.output_format)
--------------------------------------------------------------------------------
/toolbar/export_selected_nodes.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # KDBRA Tools
2 |
3 | Kdbra tools are intended to speed up and facilitate VFX artist's routines.
4 | Toolset extends some Houdini aspects with several new sop and obj nodes:
5 | - Mops (almost native)
6 | - RBD
7 | - Crowds
8 | - HightFields
9 | - Camera workflow
10 | - Common geometry operators
11 |
12 | Also provides shelftools for:
13 | - Import 3de4 2d point trackers
14 |
15 | ## Reuqirements
16 |
17 | Houdini 18.5.408
18 |
19 | ## Installation
20 |
21 | 1. clone repository `git clone https://github.com/kdbra/kdbra-houdini-tools.git`
22 | 2. put `kdbra.json` into `~/houdini{version}/packages` or `C:\users\user\houdini{version}\packages` depening on your system
23 | 3. edit `kdbra.json`, replace `~` in line `"~/kdbra-houdini-tools/"` with the actual path to repo location
24 |
25 | ## Docs
26 |
27 | Once will be here
28 |
29 | x
--------------------------------------------------------------------------------
/toolbar/kdbra.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/toolbar/fix_crowd_cache.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/python2.7libs/setupProject.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os, argparse
3 |
4 | parser = argparse.ArgumentParser(description='Setup shots directories')
5 | parser.add_argument('-s', "--src", type=str, help='src directory', default="./src")
6 | parser.add_argument('-n', '--scene_name', type=str, help='scene name', default="")
7 | args = parser.parse_args()
8 |
9 | pwd = os.getcwd()
10 |
11 | # get shot list
12 | shotslist = os.listdir(os.path.abspath(args.src))
13 |
14 | for shotname in shotslist:
15 | paths = []
16 | # Note - you can make nested paths here
17 | dirs = ['dailies',
18 | 'hip',
19 | 'trk',
20 | 'trk/proxy',
21 | 'one/two/three',
22 | 'nk']
23 | for i in dirs:
24 | paths.append(os.path.join(pwd, 'shots', args.scene_name, shotname, i))
25 |
26 | for item in paths:
27 | if not os.path.exists(item):
28 | os.makedirs(item)
--------------------------------------------------------------------------------
/python2.7libs/batchTools.py:
--------------------------------------------------------------------------------
1 | import glob, hou, datetime
2 | import os.path
3 | from os import environ
4 |
5 | def fixCrowdCache(input_dir, search_path,new_path):
6 | list_geos = glob.glob(os.path.join(input_dir, "*.geo"))
7 | for item in list_geos:
8 | tmp = ""
9 | with open(item, "r") as file:
10 | for line in file:
11 | tmp += line.replace(search_path,new_path)
12 | file = open(item, "w")
13 | file.write(tmp)
14 | file.close()
15 | print("{} fixed".format(item))
16 |
17 |
18 | def checkRenderTime(path="HIP", pattern="*"):
19 | if not os.path.exists(path):
20 | path = environ[path]
21 | path_to_folder = os.path.join(path, pattern)
22 |
23 | files = glob.glob(path_to_folder)
24 | mtimes = []
25 | for file in files:
26 | mt = os.path.getmtime(file)
27 | mtimes.append(mt)
28 | mtimes.sort()
29 | delta = mtimes[-1] - mtimes[0]
30 | return str(datetime.timedelta(seconds=delta))
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 KDBRA
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.
22 |
--------------------------------------------------------------------------------
/toolbar/find_replace.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/toolbar/create_merges.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/toolbar/kdbr_import_json_camera.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/python2.7libs/kdbrautils.py:
--------------------------------------------------------------------------------
1 | import hou, re
2 |
3 |
4 |
5 | def menuItems(cls="point"):
6 | geo = hou.pwd().input(0).geometry()
7 | if cls == "point":
8 | attrs = geo.pointAttribs()
9 | elif cls == "prim":
10 | attrs = geo.primAttribs()
11 | elif cls == "vtx":
12 | attrs = geo.vertexAttribs()
13 |
14 | tmp = []
15 | for a in attrs:
16 | tmp.append(a.name())
17 | tmp.append(a.name())
18 | return tmp
19 |
20 |
21 |
22 | def menuFromPointNames(inp=0,grp_mode=True, attrib_name="name", re_mode=False):
23 | geo = hou.pwd().input(inp).geometry()
24 | names = geo.pointStringAttribValues(attrib_name)
25 | tmp = []
26 |
27 | for a in names:
28 | c = True
29 | if grp_mode:
30 | a = "@name="+a
31 | if re_mode:
32 | pattern = "[a-zA-Z_]*"
33 | s = re.search(pattern, a)
34 | a = s.group(0)
35 | c = not a in tmp
36 |
37 | if c:
38 | tmp.append(str(a))
39 | tmp.append(str(a))
40 | tmp.sort()
41 | return tmp
42 |
43 | def menuFromAgentClips(inp="."):
44 | geo = hou.node(inp).geometry()
45 | clips = geo.prim(0).intrinsicValue("agentclipcatalog")
46 | tmp = []
47 |
48 | for a in clips:
49 | c = True
50 |
51 | pattern = "[a-zA-Z_]*"
52 | s = re.search(pattern, a)
53 | a = s.group(0) + "*"
54 | c = not a in tmp
55 | if c:
56 | tmp.append(a)
57 | tmp.append(a)
58 | tmp.sort()
59 | return tmp
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
131 | backup/
--------------------------------------------------------------------------------
/toolbar/open_create.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
161 |
162 |
163 |
--------------------------------------------------------------------------------
/toolbar/import_3de_2d_pts_as_nulls.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
14 |
158 |
159 |
160 |
--------------------------------------------------------------------------------
/desktop/wide_sc.desk:
--------------------------------------------------------------------------------
1 | fullscreen -1
2 | playbarshown 1
3 | playbar -1
4 | shelf -1
5 | menubar -1
6 | statusbar -1
7 | radial menu set main
8 | root {
9 | split 0.485156 H {
10 | split 0.42394 V R {
11 | split 0.515193 H {
12 | tabs 0 1 {
13 | pane pane1 -a 0 -l 10 -H /obj/ -T OBJ -m neteditor
14 | pane panetab9 -a 0 -l 0 -H /obj/ -T OBJ -m python
15 | pane panetab10 -a 0 -l 0 -H /obj/ -T OBJ -m textport
16 | }
17 | split 0.5 H R {
18 | tabs 0 1 {
19 | pane panetab11 -a 0 -l 10 -H /obj/ -T OBJ -m parmeditor
20 | pane panetab5 -a 0 -l 10 -H /obj/ -T OBJ -m sceneview
21 | pane panetab14 -a 0 -l 10 -H /obj/ -T OBJ -m details
22 | }
23 | tabs 0 1 {
24 | pane panetab12 -a 0 -l 10 -H /obj/ -T OBJ -m parmeditor
25 | }
26 | }
27 | }
28 | tabs 0 1 {
29 | pane panetab2 -a 0 -l 10 -H /obj/ -T OBJ -m details
30 | pane panetab8 -a 0 -l 10 -H /obj/ -T OBJ -m sceneview
31 | pane panetab6 -a 0 -l 0 -H /obj/ -T OBJ -m chaneditor
32 | pane panetab15 -a 0 -l 10 -H /ch/ -T CHOPNET -m channelview
33 | }
34 | }
35 | tabs 0 1 {
36 | pane panetab1 -a 0 -l 10 -H /obj/ -T OBJ -m sceneview
37 | pane panetab4 -a 0 -l 10 -H /img/ -T IMG -m imageview
38 | pane panetab13 -a 0 -l 10 -H /obj/ -T OBJ -m iprviewer
39 | pane panetab3 -a 0 -l 10 -H /obj/ -T OBJ -m details
40 | pane panetab7 -a 0 -l 10 -H /ch/ -T CHOPNET -m channelview
41 | pane panetab16 -a 1 -l 10 -H /obj/ -T OBJ -m pythonpanel
42 | pane panetab17 -a 1 -l 10 -H /obj/ -T OBJ -m pythonpanel
43 | pane panetab18 -a 1 -l 10 -H /obj/ -T OBJ -m pythonpanel
44 | }
45 | }
46 | }
47 | shelfdock -o 1 -l icon_and_text -G "0.50 0.50" add shelf_set_1 shelf_set_2
48 | networkeditor -p '{\n "showspareinputdep":"1",\n "showchilddep":"1",\n "showdep":"0",\n "showtaskgraphperf":"0",\n "taskgraphperfstatname":"Cook Time",\n "perfstatname":"Time",\n "showperfstats":"1",\n "grouplistsplit":"0.75",\n "showtree":"0",\n "showtypesidebar":"0",\n "taskgraphsortcriteria":"Automatic",\n "showparmdialogmax":"1",\n "treesplit":"0.25",\n "palettesize":"150 150",\n "typesidebarsplit":"0.25",\n "taskgraphcollapsemode":"Off",\n "workitemcolorattribute":"",\n "gridmode":"0",\n "overviewbounds":"0.000000 0.000000 195.683247 219.226388",\n "overviewmode":"2",\n "showgrouplist":"0",\n "palettemode":"0",\n "useworkitemcolorattribute":"1",\n "showtasksmenu":"1",\n "backgroundimageediting":"0",\n "backgroundimagebrightness":"1.0",\n "gridystep":"1.0",\n "palettecolors":"",\n "showmenu":"1",\n "gridxstep":"2.0",\n "showparmdialog":"0"\n}\n' pane1
49 | netcolumns -c display,xray,select,origin,capture,bone -n OBJ pane1
50 | netcolumns -c display,render,template,selectabletemplate,highlight,unload,bypass,lock -n SOP pane1
51 | netcolumns -c delscript,comment -n CHOPNET pane1
52 | netcolumns -c display,export,audio,bypass,lock -n CHOP pane1
53 | netcolumns -c startrender,bypass,lock -n ROP pane1
54 | netcolumns -c delscript,comment -n SHOP pane1
55 | netcolumns -c display,render,template,bypass -n COP2 pane1
56 | netcolumns -c delscript,comment -n IMG pane1
57 | netcolumns -c delscript,comment,input -n VOP pane1
58 | netcolumns -c delscript,comment -n VOPNET pane1
59 | netcolumns -c delscript,comment -n DOP pane1
60 | netcolumns -c delscript,comment -n TOP pane1
61 | netcolumns -c delscript,comment -n TOPNET pane1
62 | netcolumns -c display,bypass,delscript,comment,input -n LOP pane1
63 | netcolumns -c delscript,comment -n MGR pane1
64 | netcolumns -c delscript,comment -n DIR pane1
65 | parmeditor -T 0.25 -w 0 panetab11
66 | viewerstow -x open -b stow -l open -m hide -c hide -d open ${DESKNAME}.panetab5.world
67 | vieweroption -a 2 ${DESKNAME}.panetab5.world
68 | viewlayout -s 2 ${DESKNAME}.panetab5.world
69 | viewtype -t ortho_right ${DESKNAME}.panetab5.world.`vpname("${DESKNAME}.panetab5.world",4)`
70 | viewtype -t ortho_front ${DESKNAME}.panetab5.world.`vpname("${DESKNAME}.panetab5.world",3)`
71 | viewtype -t ortho_top ${DESKNAME}.panetab5.world.`vpname("${DESKNAME}.panetab5.world",1)`
72 | viewtype -t perspective ${DESKNAME}.panetab5.world.`vpname("${DESKNAME}.panetab5.world",2)`
73 | parmeditor -T 0.25 -w 0 panetab12
74 | viewerstow -x open -b stow -l stow -m hide -c hide -d open ${DESKNAME}.panetab8.world
75 | vieweroption -a 2 ${DESKNAME}.panetab8.world
76 | viewlayout -s 2 ${DESKNAME}.panetab8.world
77 | viewtype -t ortho_right ${DESKNAME}.panetab8.world.`vpname("${DESKNAME}.panetab8.world",4)`
78 | viewtype -t ortho_front ${DESKNAME}.panetab8.world.`vpname("${DESKNAME}.panetab8.world",3)`
79 | viewtype -t ortho_top ${DESKNAME}.panetab8.world.`vpname("${DESKNAME}.panetab8.world",1)`
80 | viewtype -t perspective ${DESKNAME}.panetab8.world.`vpname("${DESKNAME}.panetab8.world",2)`
81 | chopview -a 0 -c "" -k 1 -m 1 -b 1 -e 1 -f 1 -g 0 -H 0 -i 0 -j 1 -l 0 -n 1 -V 0 -y 0 -B 0 -s 0 -S 0.95613 -u 0 -v 0 -h -6.61922 42.139 -r -1.5 1.5 -R 0 -62.946 38.5292 panetab15
82 | viewerstow -x open -b stow -l open -m hide -c hide -d open ${DESKNAME}.panetab1.world
83 | vieweroption -a 1 ${DESKNAME}.panetab1.world
84 | viewlayout -s 2 ${DESKNAME}.panetab1.world
85 | viewtype -t ortho_right ${DESKNAME}.panetab1.world.`vpname("${DESKNAME}.panetab1.world",4)`
86 | viewtype -t ortho_front ${DESKNAME}.panetab1.world.`vpname("${DESKNAME}.panetab1.world",3)`
87 | viewtype -t perspective ${DESKNAME}.panetab1.world.`vpname("${DESKNAME}.panetab1.world",1)`
88 | viewtype -t perspective ${DESKNAME}.panetab1.world.`vpname("${DESKNAME}.panetab1.world",2)`
89 | iprview -t 0.1 -l 0 -e 1 -u 1 panetab13
90 | chopview -a 0 -c "" -k 1 -m 1 -b 1 -e 1 -f 0 -g 0 -H 1 -i 0 -j 1 -l 0 -n 1 -V 0 -y 0 -B 0 -s 0 -S 0.175325 -u 0 -v 0 -h -12.65 287.65 -r -1.5 1.5 -R 0 0.5 1.5 panetab7
91 | pythonpanel -s on -t off -n RedshiftRenderViewPane panetab16
92 | pythonpanel -s on -t off -n pdgservicemenu panetab17
93 | pythonpanel -s on -t off -n taskgraphtable panetab18
94 |
--------------------------------------------------------------------------------
/toolbar/crowd_setup.shelf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
298 |
299 |
300 |
--------------------------------------------------------------------------------