Jump to: Board index » General » Fusion

Where are the Fuse SDK examples?

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline
User avatar

roger.magnusson

  • Posts: 3354
  • Joined: Wed Sep 23, 2015 4:58 pm

Where are the Fuse SDK examples?

PostWed Mar 15, 2023 8:55 am

The Fuse Plugin Guide section of the Fusion Fuse Manual.pdf included with Fusion/Resolve 18 is centered around seven code examples that are supposed to be installed in the Developer folder.

Code: Select all
Example1_BrightContrast.fuse
Example2_UIControls.fuse
Example3_ImageProcess.fuse
Example4_MultiPixelProcess.fuse
Example5_Shapes.fuse
Example6_Text.fuse
Example7_Sampling.fuse

Does anyone know where they are?
Offline

Hard Is Easy

  • Posts: 74
  • Joined: Fri Sep 24, 2021 5:48 pm
  • Real Name: Benediktas Lipnickas

Re: Where are the Fuse SDK examples?

PostMon May 15, 2023 2:42 pm

Have you managed to find them? I have the same question...
Offline
User avatar

roger.magnusson

  • Posts: 3354
  • Joined: Wed Sep 23, 2015 4:58 pm

Re: Where are the Fuse SDK examples?

PostMon May 15, 2023 5:42 pm

No, it seems they forgot to include them in the installer.
Online
User avatar

Jacob Danell

  • Posts: 290
  • Joined: Tue Aug 28, 2012 2:25 pm
  • Location: Sweden

Re: Where are the Fuse SDK examples?

PostTue Jan 30, 2024 9:08 am

Push up on this one. Really weird that BMD refer to the fuses but doesn't include them

Windows 10, Fusion 18.x
AMD Ryzen 9 5950X 16-Core Processor 3.40 GHz
Nvidia GeForce RTX 3090 Ti
128 GB ram
Offline

june yu

  • Posts: 48
  • Joined: Thu Nov 13, 2014 2:25 am

Re: Where are the Fuse SDK examples?

PostTue Jan 30, 2024 12:11 pm

Chinese Forum : https://www.cgsfusion.com
Optical Flares for Fusion:https://gumroad.com/l/OpticalFlares
Fractal Noise for Fusion: https://gumroad.com/l/FractalNoise
Offline
User avatar

roger.magnusson

  • Posts: 3354
  • Joined: Wed Sep 23, 2015 4:58 pm

Re: Where are the Fuse SDK examples?

PostTue Jan 30, 2024 1:28 pm

Yes, that's the document but the document doesn't contain the full examples.

The document says: "There are 7 Template Example Fuses installed in the Developer section of Resolve and Fusion with inline documentation (comments). This section will offer an overview of basic Fuse programming and refer to these examples for more in depth study."
Offline
User avatar

Stephen Dixon

  • Posts: 120
  • Joined: Tue Jul 16, 2013 3:04 am

Re: Where are the Fuse SDK examples?

PostThu Mar 07, 2024 4:22 am

Can someone from BMD please hunt down these files and fix this? Their indifference to 3rd party developers might be one of the reasons a huge ecosystem of scripts and plugins exists for Adobe products but is strangely absent for Resolve.
Offline

josephc

  • Posts: 2
  • Joined: Tue Jan 17, 2023 4:58 am
  • Location: San Francisco
  • Real Name: Joseph Catrambone

Re: Where are the Fuse SDK examples?

PostThu Mar 07, 2024 5:26 pm

I FINALLY found some example fuses on VFXPedia. It took some diving into other VFX forms. I suspect if I post a link I'll get flagged as spam, but I can upload two or three of them as attachments.

Fake edit: Neither '.txt' nor 'fuse' are allowed as file types, so I have to just copy/paste them here:

===

Code: Select all
--[[--
Null.Fuse

About as simple as it gets. This tool doesn't actually do anything - it just passes the input to the output. An example of the bare minimum required to create a tool.

version 1.0
August 21st, 2007
--]]--

FuRegisterClass("Null", CT_Tool, {
   REGS_Category = "Fuses\\eyeon\\Examples",
   REGS_OpIconString = "Nul",
   REGS_OpDescription = "Null Fuse",
   REG_OpNoMask = true,
   REG_NoBlendCtrls = true,
   REG_NoObjMatCtrls = true,
   REG_NoMotionBlurCtrls = true,
   })

function Create()

   InBlank = self:AddInput(" ", "Blank", {
      LINKID_DataType = "Number",
      INPID_InputControl = "LabelControl",
      INP_External = false,
      })         

   InImage = self:AddInput("Input", "Input", {
      LINKID_DataType = "Image",
      LINK_Main = 1,
      })

   OutImage = self:AddOutput("Output", "Output", {
      LINKID_DataType = "Image",
      LINK_Main = 1,
      })            
end

function Process(req)
   local img = InImage:GetValue(req)
   img:Use()
   
   OutImage:Set(req, img)
end


And CropRectangle because it's short enough to still fit:

Code: Select all
--[[--
CropRectangle.Fuse

This Fuse is a variation on the crop tool. It initially presents an uncropped
version of the image, with an onscreen rectangle control that represents the
cropping region.

Selecting the "Show Crop" option will output the cropped image instead.

Written By : Isaac Guenard [izyk@eyeonline.com]
Written On : November 22nd, 2007
Version 1
--]]--


FuRegisterClass("CropRectangle", CT_Tool, {
   REGS_Category = "Transform",
   REGS_OpIconString = "CrpR",
   REGS_OpDescription = "Crops to a rectangle control",
   REG_NoAutoProxy = true,
   REG_NoMotionBlurCtrls = true,
   REG_NoObjMatCtrls = true,
   REG_NoBlendCtrls = true,
   REG_OpNoMask = true,
   })
   
function Create()
   InOperation = self:AddInput("Show", "Show", {
      LINKID_DataType = "Number",
      INPID_InputControl = "MultiButtonControl",
      INP_Default = 0.0,
      { MBTNC_AddButton = "Uncropped", MBTNCD_ButtonWidth = 0.5, },
      { MBTNC_AddButton = "Show Crop", MBTNCD_ButtonWidth = 0.5, },
      INP_DoNotifyChanged = true,
   })
   
   InCenter = self:AddInput("Center", "Center", {
      LINKID_DataType = "Point",
      INPID_InputControl = "OffsetControl",
      INPID_PreviewControl = "CrosshairControl",
      INP_DoNotifyChanged = true, -- We want to hear about changes on this control
      })
   
   InWidth = self:AddInput("Width", "Width", {
      LINKID_DataType = "Number",
      INPID_InputControl = "SliderControl",
      INP_Default = 1.0,
      INPID_PreviewControl = "RectangleControl",
      PC_ControlGroup = 1,
      PC_ControlID = 0,
      })         

   InHeight = self:AddInput("Height", "Height", {
      LINKID_DataType = "Number",
      INPID_InputControl = "SliderControl",
      INP_Default = 1.0,
      INPID_PreviewControl = "RectangleControl",
      PC_ControlGroup = 1,
      PC_ControlID = 1,
      })   
      
   InImage = self:AddInput("Input", "Input", {
      LINKID_DataType = "Image",
      LINK_Main = 1,
      })

   OutImage = self:AddOutput("Output", "Output", {
      LINKID_DataType = "Image",
      LINK_Main = 1,
      })            
      
end

function Process(req)
   local img = InImage:GetValue(req)
   local center = InCenter:GetValue(req)
   local width = InWidth:GetValue(req).Value
   local height = InHeight:GetValue(req).Value
   local operation = InOperation:GetValue(req).Value
   
   
   if operation == 0 then
      -- we are looking at the original, and doing nothing
      img:Use() -- increment the images Use count
      OutImage:Set(req, img)
      
   else
      -- we are doing the actual crop
      
      local out = Image({
         IMG_Like = img,
         IMG_Width = math.floor(img.Width * width + 0.5),
         IMG_Height = math.floor(img.Height * height + 0.5),
         IMAT_OriginalWidth = math.floor(img.OriginalWidth * width + 0.5),
         IMAT_OriginalHeight = math.floor(img.OriginalHeight * height + 0.5),
         IMAT
      })

      img:Crop(out, {
         CROP_XOffset = math.floor(img.Width  * center.X - (img.Width  * width  / 2) + 0.5),
         CROP_YOffset = math.floor(img.Height * center.Y - (img.Height * height / 2) + 0.5),
      })
      
      OutImage:Set(req, out)
   end
end

function NotifyChanged(inp, param, time)

   if inp == InCenter then   -- Center moved, update rectangle control position
      InHeight:SetAttrs({ RCD_SetX = param.X, RCD_SetY = param.Y })
      
   elseif inp == InOperation then
      
      InHeight:SetAttrs({ PC_Visible = (param.Value < 1) })
      InCenter:SetAttrs({ PC_Visible = (param.Value < 1) })
   end
   
end
Offline
User avatar

roger.magnusson

  • Posts: 3354
  • Joined: Wed Sep 23, 2015 4:58 pm

Re: Where are the Fuse SDK examples?

PostFri Mar 08, 2024 10:17 am

To be clear, this thread isn't about generic Fuse examples, but the specific ones that relate to the SDK documentation that are missing in the Fusion Studio/Resolve installers.

Return to Fusion

Who is online

Users browsing this forum: BMDR User 9201 and 32 guests