Vote: 17 FME Features from Innovation Daze 2020
Innovation Daze is an annual hackathon hosted internally at Safe Software, where our developers are free to work on whatever they want for a week and present their results at the end. The idea isn’t necessarily to succeed, but to brainstorm, innovate, see what happens. It’s a time to have fun, collaborate with people from other teams, and explore ideas that are outside of our regular tasks.
While there’s no guarantee that these features will make it to production, a lot of Innovation Daze projects do end up being incorporated into FME releases! For example, our online transformer gallery, collapsible bookmarks in FME Workbench, and the ability to write your data to Minecraft actually came from this.
This was a unique year since we are all working remotely due to the pandemic, but that didn’t impact the work done. In fact, we completed a record 62 projects. A lot of teams focused on awesome back-end improvements and innovations. This blog focuses on 17 user-facing endeavours. If any of these interest you, please follow the links to vote for them on FME Ideas Exchange so we can get a better idea of which features to pursue.
1. Calendar view for FME Server schedules
Add a widget in the FME Server web interface to show all schedules on a monthly calendar. We know this will make a lot of you excited! If we implement this idea, we would also want to include Automations in the calendar, enable filtering based on the owner, and show schedule types beyond basic ones. Vote on this idea
Demo: Your FME Server schedules shown on a monthly calendar.
2. FME Slack App
Use Slack to trigger an FME Workspace. Drop your source files into a Slack channel, which triggers a workspace hosted on FME Server, and get back the result right in that channel. Vote on this idea
Demo: This user is uploading a picture to a Slack channel, which triggers an FME Workspace to do analysis on it, and then gets back the result.
3. Easier SSL configuration in FME Server
Streamline the process of configuring SSL (HTTPS) in FME Server, which currently involves several steps. This would make Admins’ lives easier. We explored how we could go about simplifying this process, including using self-signed certificates and creating a new UI. We were successful in creating a proof of concept. If you’d like us to continue working on this, please vote on this idea.
4. Auto-Generate Customer Story PDFs
When browsing our customer gallery, use this tool to bundle a few stories into a PDF. We see this being helpful for our partners who need collateral highlighting specific use cases, as well as for anyone who needs to convince their boss that FME is the right choice. Underneath, this is an FME Server App embedded into a webpage. Try the DIY Story Set in our demo gallery now, and stay tuned for this to appear as a real feature in our customer gallery in the future.
Example output PDF featuring the YVR customer story.
5. Run FME in a Kubernetes cluster with Windows containers
Deploy FME Server on Windows in a Kubernetes cluster. Kubernetes is Linux-based, but some formats in FME are Windows-only, so this project aimed to help users who want to read/write Windows formats in Kubernetes. We were successful in deploying a mixed cluster, with the caveat that the Azure Kubernetes Service with Windows nodes is currently in a tech preview mode. This also requires using Azure Files as the storage class. If you’re interested in having us investigate this further, please vote on this idea.
6. Reimagined FME Server Resources browser
Make the FME Server Resources browser more intuitive to navigate by making it feel like a familiar file system interface, plus allow shortcuts/favorites. Vote on this idea
Demo: A more intuitive Resources browser that lets you add Favorites.
7. Visual FME Workspace Diff
Diff workspaces (i.e. compare two .fmw files) right in Workbench using a split-window view. Transformers and parameters are highlighted in green, yellow, and red if they were added, modified, or removed. If we implement this functionality, we would also want to highlight changed readers/writers, bookmarks, annotations, and other components. Vote on this idea
Demo: Diffing two workspaces using a split view in FME Workbench.
8. Attribute processing: Perform operations on all items in a list
In transformers that manipulate attributes, add a function to perform an operation on all items in a list. This came up as a use case where a list needed to be converted from meters to centimeters. Other use cases might include enforcing min/max values, adjusting values by another list element, and filling in a list that has gaps (like for XML data). Vote on this idea
9. FME Performance Profiler
After a workspace runs, highlight which parts took the most time. This could help you create more performant workflows. Vote on this idea
Demo: FME Workspace with connections highlighted based on how they performed.
10. Predict the Next Transformer using AI
Suggest the next transformer you’re likely to need as you build a workspace. This would make it easier to use FME, both for new and experienced users. To do this, we integrated Artificial Intelligence into FME and trained it with a data model to help suggest the next transformer based on existing knowledge of workspaces. We were successful in predicting the next transformer within a basic app; the next step would be to refine it and incorporate it into the FME Workbench interface. Vote on this idea
Mockup: Suggest the next transformer based on a machine learning model.
11. COVID-19 response with FME
We explored how FME can be used to assist the coronavirus response, such as impact assessment, geocoding, contact tracing, and data preparation for analytics. We are offering free licenses to anyone who wants to use FME for COVID-19 response, so as part of this, we looked at how FME is currently being used for this purpose and how we can support these efforts.
Use cases we discovered in this research:
- Disease extents mapping (test results, time series, heat maps)
- Contact tracing
- Impact analysis (infrastructure, resource mitigation)
- IT services for general data exchange, e.g. JSON feeds
12. Transformer to Refine Meshes
A transformer that creates smooth meshes from simpler ones, i.e. refine low-resolution meshes to high-resolution ones. This is the opposite of the MeshSimplifier. Using a library that’s popular for 3D animation, we successfully created a beta MeshRefiner transformer. Vote on this idea
Demo: The mesh on the left has been refined into a smoother model with 10x more parts.
13. MIDI Reader/Writer
Read and write basic music files with FME:
Need I say more? Make your own tunes using the MIDI Tools package on FME Hub.
14. Dynamic input ports for PythonCaller
Enable dynamic input ports for the PythonCaller transformer. Vote on this idea
Demo: Multiple input ports on the PythonCaller
15. Boundary constraints in Voronoi diagrams
The VoronoiDiagrammer transformer helps you determine which features are closest. The current method measures distances “as the crow flies”; the goal of this project was to account for geographical or political boundaries. Vote on this idea
Demo: A “Network Voronoi diagram” showing which fire stations are closest to each road in Vancouver. Distances are measured along the road network.
16. Run FME on the GPU
Can we run FME on the Graphics Processor, and will it perform better this way? As it turns out, probably not. Any time saved in processing is counterbalanced by the time it takes to send data to and from the GPU. This was a great experiment, and now we know!
17. Publish interactive VR content via a WebXR writer
A WebXR Writer to generate a web page where users can interact with your data in Virtual Reality (via a VR headset or in a web browser). Vote on this idea
Prototype: Writing a VR model to a web page.
We hope you’re excited by these projects and will cast your votes on the FME Community! Our development team looks closely at your suggestions and votes when we’re choosing which features to develop for each release. Please continue to suggest your great ideas and let us know what we can do to make your job easier.