Visual GUI Designer for FrontPanel XML Files - Open Source Tool

I’ve created a free, browser-based visual editor for designing FrontPanel GUI layouts. No more manual coordinate calculations!

:link: GitHub Repository: palathingal/gui-xml-designer: Visual drag-and-drop GUI designer for Opal Kelly FrontPanel XML files


The Problem

If you’ve worked with FrontPanel GUIs, you know the pain:

<object class="okPushbutton">
    <position>45,60</position>  <!-- Calculated by hand 😫 -->
    <size>50,30</size>           <!-- Trial and error -->
</object>

Every time you want to move a button or add a new LED, you’re:

  • Opening the XML file in a text editor

  • Manually calculating X,Y coordinates

  • Guessing component sizes

  • Running FrontPanel to preview

  • Realizing it’s misaligned

  • Repeating the process…

There had to be a better way.


The Solution: Visual GUI Designer

I built a drag-and-drop editor that runs entirely in your browser. Zero installation required.

:sparkles: Key Features

:artist_palette: Visual Design

  • Drag components to position them

  • Resize with interactive handles

  • Real-time preview

  • Zoom controls for precision

:package: Full Component Support

  • All Wire In components (okPushbutton, okSlider, okDigitEntry, etc.)

  • All Wire Out components (okLED, okDigitDisplay, okHex, okGauge, etc.)

  • Static elements (okStaticText, okStaticBox)

  • Trigger components and File Pipes

:floppy_disk: Import/Export

  • Import your existing .xfp files

  • Edit visually

  • Export back to FrontPanel-compatible XML

  • Preserves all properties and attributes

:bullseye: Smart Property Management

  • Component-specific property panels

  • Only shows relevant fields for each type

  • Color picker for LEDs

  • Dropdown selectors for radix, style, alignment, etc.

  • Default values for all fields


How It Works

Quick Start

  1. Download gui-designer.html from the GitHub repo

  2. Open it in any modern browser (Chrome, Firefox, Edge, Safari)

  3. Start designing!

Workflow Example

Creating a New GUI:

1. Click "Push Button" → Component appears on canvas
2. Drag it to position (45, 60)
3. Select component → Edit properties panel:
   - Label: "RESET"
   - Endpoint: 0x00
   - Bit: 2
   - Tooltip: "Reset the counter"
4. Click "Export XML" → Save as .xfp file

Editing Existing Files:

1. Click "Import XML"
2. Select your .xfp file
3. All components load with positions and properties
4. Make changes visually
5. Export updated file


Technical Details

Technology Stack:

  • Pure HTML/JavaScript - No build tools required

  • React 18 (via CDN)

  • Tailwind CSS for styling

  • Native DOMParser for XML handling

Browser Requirements:

  • Chrome 90+, Firefox 88+, Safari 14+, or Edge 90+

  • JavaScript enabled

  • No plugins or extensions needed

File Compatibility:

  • Reads/writes standard FrontPanel XML format

  • Fully compatible with FrontPanel API

  • Preserves all component attributes


Why I Built This

I was working on an automated test equipment project with multiple FrontPanel interfaces. After spending hours tweaking coordinates for the third GUI, I decided there had to be a better approach.

This tool has already saved me countless hours, and I wanted to share it with the community.


FAQ

Q: Does this work with existing FrontPanel projects? A: Yes! Import your .xfp files, edit them visually, and export. The XML structure is fully compatible.

Q: Is it free? A: Completely free and open source (MIT License). Use it commercially, modify it, share it.

Q: Do I need to install anything? A: No! Just download the HTML file and open it in your browser. Works offline too.

Q: Can I contribute? A: Absolutely! The code is on GitHub and contributions are welcome.

Q: What if I find a bug? A: Please report it on GitHub IssLicense

MIT License - Free for commercial and personal use.


Acknowledgments

Thanks to the Opal Kelly team for creating FrontPanel and fostering such a great developer community. This tool is built by the community, for the community.


Give it a try and let me know what you think! I’m excited to hear your feedback and suggestions.

Happy GUI designing! :artist_palette:


Note: This is an independent, community-developed tool and is not officially affiliated with Opal Kelly Inc.

1 Like

This is a pretty great idea! Thanks for posting!

BTW, have you tried FrontPanel Platform (a.k.a. FrontPanel 6) yet? We should be releasing the official version in April.