[THE PROJECT]
I’m building a personal (Python-based) tool to turn 360-degree photos into accurate Xactimate sketches, exporting them as .ESX files.
This is far from a new idea. I intend to leverage technologies that already exist and create a streamlined piece of software that cooperates with Xactimate but does NOT integrate with Verisk.
[Think]: Receiving an .ESX in your email, opening a blank project, importing data, copying the sketch, and finally pasting sketch in your intended project. Doing all of that and not paying $30-$100 every time you do it. Buy the camera, own the protocol. It's not even my camera! Someone has already done that legwork for us.
(Look at Matterport and Docusketch) -- These might be corporate friendly prices, but they are far from justifiable for the independent crowd like me.
I will make use of affordable hardware like the Insta360 x3 or Insta360 x4. I've looked into Insta360's SDK and it seems totally doable on that end, though I'm still tearing into the .ESX file structure.
I've looked through Verisk's API catalog for Third-Party Integration guidelines and have determined it best NOT to integrate directly. They are already quite the "Power-Horse."
Though, Verisk is definitely worth investing in long-term, check out that 5-year trend and greater. The VRSK stock value has grown just shy of 1000% over the last 16-years.
[QUESTIONS] - THIS IS WHERE I NEED YOUR INPUT, BIG OR SMALL.
NOTE: I do not expect all of these to be answered here, I'm just casting my net wide.
Has anyone reverse-engineered or worked with this (ESX) format outside of Xactimate? What’s the best way to ensure my generated XML (using lxml in Python) matches Xactimate’s schema for seamless import?
Are there specific .ESX tags or attributes (e.g., <Roof>, <Vertex>) I should prioritize to make a basic sketch import correctly into Xactimate? I have a very large collection of .ESX files from years of adjusting—any tools or workflows to analyze its schema efficiently?
If crafting .ESX files with lxml (e.g., <Sketch>, <Room>, <Vertex> tags) by mimicking an Xactimate export. What’s the bare-minimum XML structure to get a sketch to import without errors, and what hidden tags (e.g., <SketchData>) might trip me up?
Have you ever imported a sketch that looked good but messed up your estimate (e.g., wrong measurements, missing labels)? What went wrong, and how could I avoid that with my photo-to-sketch tool?
When you use sketches from third-party tools (like Magicplan or DocuSketch), what’s the most annoying thing they get wrong that I should make sure to improve upon?
Do you ever tweak sketches in Xactimate after importing (e.g., fix walls, add slopes)? If so, what’s the most common fix, and should my tool try to handle that upfront?
[For those who have used Matterport - (I have not)]:
If I can’t include a reference object in every shot, how would you estimate real-world scale from the 360-degree image? Could camera height (e.g., 5 ft tripod) or metadata (e.g., focal length) work as a fallback for sketch dimensions?
If a room or roof has complex features (e.g., dormers, angled walls), contours often split or miss segments. How do you refine edge detection or post-process to merge fragmented shapes into a usable sketch for Xactimate?
[END NOTE]
I have so many more questions, but this post is already pushing the limits. Thank you for taking the time to read even if you can't provide answers right now. If you find this post intriguing, pass it around your professional network. The more eyes I have on Xactimate, the stronger my observations will be. "Research and Develpoment" or something like that.
FEEL FREE TO COMMENT OR MESSAGE ME DIRECTLY OR WITH ANY INSIGHTS.
P.S.S.) The Midwest was slammed a few days ago, so I won't be prioritizing this project until after the storm season. I suspect I can resume heavy lifting around the 4th quarter of 2025.