mathgraphicsgeometryhoudini

Trying to view source code for a Houdini file


I want to better understand a remarkable paper: https://cseweb.ucsd.edu/~alchern/projects/MinimalCurrent/

The authors provide the source code as a proprietary binary code that can only be opened in Houdini. A .hipnc file. The binary data can be viewed in other applications, but not the source code.

Opening the file with the free licensed version of Houdini shows some graphical output.

enter image description here

However searching around in the documentation and playing with the UI I cannot find a text editor to actually see the source code of what the researchers were doing.

Given the original paper description, I know that the source code is contained in the Houdini file. The authors explicitly say so. But I cannot find documentation describing how to see that source code.


Solution

  • Houdini is described as an "IDE for computer graphics", and not a typical code/script editor. In the context of this question, the .hipnc file contains a workflow comprising network nodes, which looks something like below in Network View:

    enter image description here

    Assuming you are interested in the mincurr_FFT_solver node, you can use the built-in Python Shell to get the source code of any given node:

    import hou
    node = hou.node('/obj/Minimal_Current/mincurr_FFT_solver')
    print(node.asCode())
    

    Results when written to file:

    # Initialize parent node variable.
    if locals().get("hou_parent") is None:
        hou_parent = hou.node("/obj/Minimal_Current")
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver
    hou_node = hou_parent.createNode("subnet", "mincurr_FFT_solver", run_init_scripts=False, load_contents=True, exact_type_name=True)
    hou_node.move(hou.Vector2(1.25615, -5.79144))
    hou_node.bypass(False)
    hou_node.setDisplayFlag(False)
    hou_node.hide(False)
    hou_node.setHighlightFlag(False)
    hou_node.setHardLocked(False)
    hou_node.setSoftLocked(False)
    hou_node.setSelectableTemplateFlag(False)
    hou_node.setSelected(True)
    hou_node.setRenderFlag(False)
    hou_node.setTemplateFlag(False)
    hou_node.setUnloadFlag(False)
    
    hou_parm_template_group = hou.ParmTemplateGroup()
    # Code for parameter template
    hou_parm_template = hou.StringParmTemplate("label1", "Input #1 Label", 1, default_value=(["Sub-Network Input #1"]), naming_scheme=hou.parmNamingScheme.Base1, string_type=hou.stringParmType.Regular, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal)
    hou_parm_template_group.append(hou_parm_template)
    # Code for parameter template
    hou_parm_template = hou.StringParmTemplate("label2", "Input #2 Label", 1, default_value=(["Sub-Network Input #2"]), naming_scheme=hou.parmNamingScheme.Base1, string_type=hou.stringParmType.Regular, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal)
    hou_parm_template_group.append(hou_parm_template)
    # Code for parameter template
    hou_parm_template = hou.StringParmTemplate("label3", "Input #3 Label", 1, default_value=(["Sub-Network Input #3"]), naming_scheme=hou.parmNamingScheme.Base1, string_type=hou.stringParmType.Regular, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal)
    hou_parm_template_group.append(hou_parm_template)
    # Code for parameter template
    hou_parm_template = hou.StringParmTemplate("label4", "Input #4 Label", 1, default_value=(["Sub-Network Input #4"]), naming_scheme=hou.parmNamingScheme.Base1, string_type=hou.stringParmType.Regular, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal)
    hou_parm_template_group.append(hou_parm_template)
    # Code for parameter template
    hou_parm_template = hou.ButtonParmTemplate("resimulate", "Reset Simulation")
    hou_parm_template.setTags({"autoscope": "0000000000000000"})
    hou_parm_template_group.append(hou_parm_template)
    # Code for parameter template
    hou_parm_template = hou.FolderParmTemplate("folder0", "Fast ADMM Parameters", folder_type=hou.folderType.Simple, default_value=0, ends_tab_group=False)
    hou_parm_template.setTags({"group_type": "simple"})
    # Code for parameter template
    hou_parm_template2 = hou.FloatParmTemplate("tau", "time step (tau)", 1, default_value=([0.1]), min=0, max=1, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.FloatParmTemplate("c_threshold", "threshold (c_threshold)", 1, default_value=([0.5]), min=0, max=1, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    hou_parm_template_group.append(hou_parm_template)
    # Code for parameter template
    hou_parm_template = hou.FolderParmTemplate("folder1", "Pointers to Volumes", folder_type=hou.folderType.Simple, default_value=0, ends_tab_group=False)
    hou_parm_template.setTags({"group_type": "simple"})
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("rhs", "RHS", 1, default_value=([32]), min=0, max=10, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_eta0", "eta0", 1, default_value=([2]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_eta", "eta", 1, default_value=([5]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_phi", "phi", 1, default_value=([9]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_X", "X", 1, default_value=([10]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_Xhat", "Xhat", 1, default_value=([13]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_Xprev", "Xprev", 1, default_value=([16]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_lambda", "lambda", 1, default_value=([19]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_lambdahat", "lambdahat", 1, default_value=([22]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_lambdaprev", "lambdaprev", 1, default_value=([25]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_Y", "Y", 1, default_value=([28]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.IntParmTemplate("ind_summand", "summand", 1, default_value=([31]), min=0, max=30, min_is_strict=False, max_is_strict=False, look=hou.parmLook.Regular, naming_scheme=hou.parmNamingScheme.Base1, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal, menu_use_token=False)
    hou_parm_template2.setScriptCallbackLanguage(hou.scriptLanguage.Python)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "script_callback_language": "python"})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    hou_parm_template_group.append(hou_parm_template)
    # Code for parameter template
    hou_parm_template = hou.FolderParmTemplate("folder2", "Paths to Cached Matrices", folder_type=hou.folderType.Simple, default_value=0, ends_tab_group=False)
    hou_parm_template.setTags({"group_type": "simple"})
    # Code for parameter template
    hou_parm_template2 = hou.StringParmTemplate("path_laplacian", "DVEC Laplacian", 1, default_value=(["../vdec_laplacian1/"]), naming_scheme=hou.parmNamingScheme.Base1, string_type=hou.stringParmType.NodeReference, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "oprelative": "."})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.StringParmTemplate("path_sharp", "DVEC Sharp Matrix", 1, default_value=(["../vdec_sharp_matrix1/"]), naming_scheme=hou.parmNamingScheme.Base1, string_type=hou.stringParmType.NodeReference, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "oprelative": "."})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    # Code for parameter template
    hou_parm_template2 = hou.StringParmTemplate("path_system_matrix", "MINCURR System Matrix", 1, default_value=(["../mincurr_system_matrix1/"]), naming_scheme=hou.parmNamingScheme.Base1, string_type=hou.stringParmType.NodeReference, menu_items=([]), menu_labels=([]), icon_names=([]), item_generator_script="", item_generator_script_language=hou.scriptLanguage.Python, menu_type=hou.menuType.Normal)
    hou_parm_template2.setTags({"autoscope": "0000000000000000", "oprelative": "."})
    hou_parm_template.addParmTemplate(hou_parm_template2)
    hou_parm_template_group.append(hou_parm_template)
    hou_node.setParmTemplateGroup(hou_parm_template_group)
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/label1 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("label1")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("Sub-Network Input #1")
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/label2 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("label2")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("Sub-Network Input #2")
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/label3 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("label3")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("Sub-Network Input #3")
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/label4 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("label4")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("Sub-Network Input #4")
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/resimulate parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("resimulate")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("0")
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/folder0 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("folder0")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(0)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/tau parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("tau")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(0.040000000000000001)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/c_threshold parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("c_threshold")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(0.5)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/folder1 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("folder1")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(0)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/rhs parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("rhs")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(32)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_eta0 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_eta0")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(2)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_eta parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_eta")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(5)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_phi parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_phi")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(9)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_X parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_X")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(10)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_Xhat parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_Xhat")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(13)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_Xprev parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_Xprev")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(16)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_lambda parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_lambda")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(19)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_lambdahat parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_lambdahat")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(22)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_lambdaprev parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_lambdaprev")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(25)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_Y parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_Y")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(28)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/ind_summand parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("ind_summand")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(31)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/folder2 parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("folder2")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set(0)
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/path_laplacian parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("path_laplacian")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("../vdec_laplacian1/")
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/path_sharp parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("path_sharp")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("../vdec_sharp_matrix1/")
    hou_parm.setAutoscope(False)
    
    
    # Code for /obj/Minimal_Current/mincurr_FFT_solver/path_system_matrix parm 
    if locals().get("hou_node") is None:
        hou_node = hou.node("/obj/Minimal_Current/mincurr_FFT_solver")
    hou_parm = hou_node.parm("path_system_matrix")
    hou_parm.lock(False)
    hou_parm.deleteAllKeyframes()
    hou_parm.set("../mincurr_system_matrix1/")
    hou_parm.setAutoscope(False)
    
    
    hou_node.setExpressionLanguage(hou.exprLanguage.Hscript)
    
    # Code to establish connections for /obj/Minimal_Current/mincurr_FFT_solver
    hou_node = hou_parent.node("mincurr_FFT_solver")
    if hou_parent.node("mincurr_FFT_initialize") is not None:
        hou_node.setInput(0, hou_parent.node("mincurr_FFT_initialize"), 0)
    hou_node.setUserData("___Version___", "19.5.465")
    if hasattr(hou_node, "syncNodeVersionIfNeeded"):
        hou_node.syncNodeVersionIfNeeded("19.5.465")
    

    To address this question, I had to consult information related to Python SOP (surface operators in Houdini), such as: https://github.com/kiryha/Houdini/wiki/python-for-artists#python-integration-basics