How to draw Inputs from Geometry nodes modifier in a panel
The modifier input value is treated like a custom property.
If you right click over the data field in the modifier and select &quot;copy datapath&quot;, pasting will reveal
modifiers[&quot;GeometryNodes&quot;][&quot;Input_5&quot;]

Indicating it is a custom propoerty of the modifier named &quot;Input_5&quot;.  A custom property naeed &quot;prop&quot; on object ob is shown in UI as
UILayout.prop(ob, '[&quot;prop&quot;]')

Hence in this case.
    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.label(text = &quot;Geometry Node inputs here&quot;)
        row = layout.row()
        gm = context.active_object.modifiers.get(&quot;GeometryNodes&quot;)
        if gm:
            row.prop(gm, '[&quot;Input_5&quot;]',  text=&quot;Density&quot;)
        

Note
Check out the style guide under which the modifier instance variable would be named akin to geom_modifier (I like using gm to reduce the verbosity) Camel case is used for class names. A variable named GeoNodesModifier will consistently be a type in any official blender UI code