Is it still worth trying to build a custom mobile app to control the Z1?

For the past 4-5 years, I have mailed Z1s to my clients around the country. They simply download the Theta app and I provided clear instructions on the capture process. It has worked perfectly, though I always wished I could offer a branded option. Regardless, they shoot the photos, upload to me for editing through their computer, then I build a virtual tour.

Now that the Theta app is no longer being updated, I don’t want to force my clients into creating an unnecessary account with the new Ricoh360 app. This seems like the perfect time to look into my own app.

I spent much of the afternoon combing through this awesome forum. It seems like many things are technically possible, but I wanted to get a little advice before I dive into this rabbit hole – I certainly cannot code an app so I would be paying someone to accomplish this.

My goal is to have a basic app similar to the original Theta version. I don’t need ALL of the original functionality, but I definitely want Live Preview and the same Camera Control options. Will a custom app still be able to utilize in-camera HDR stitching as before? If not, that pretty much ends the journey now.

Also, with the old Theta app getting retired, will that affect the API or any custom apps?

I would love to chat with any developers that have already gone down this road.

1 Like

yes, that is part of the API.

https://github.com/ricohapi/theta-api-specs/blob/main/theta-web-api-v2.1/options/_filter.md

In the API, it is referred to as a “filter”. There is both hdr and Hh hdr (with some small degree of stabilization).

The API for the cameras are mostly the same, so the app for the Z1 would likely be able to with the the X and with future models.

Here is my opinion:

  1. use AI like ChatGPT, Claude, or this forum. Example using the AI for this forum:
    THETA Z1 Mobile App Requirements Specification - AI Conversation - THETA 360 Developer
  2. find a small company that has already built an application for the THETA Z1 and send them the Request For Proposal (RFP) and see what the cost is. Get three estimates. Note that if they only built the app for the SC2, it is largely the same. So, it should be acceptable experience.
  3. if you cannot get a good response, then send it out more widely on different job sites. You can post the RFP here and we can provide feedback.

NOTE: if you use the AI on this site, you need to log out and log back in. I just added your account to an AI tester group.

CAUTION: I do not work for RICOH and cannot provide assurances for future API specs.

However, if you look at the past 3 or 4 models, the API largely consistent. An app built for the Z1 will either work for a future model or can be modified to work with minor changes.

Additionally, the API for the Z1 and the other RICOH THETA cameras is compliant with the Google Open Spherical Camera API Open Spherical Camera API  |  Google for Developers

Thus, let’s say that you don’t like the next model from RICOH, you could likely switch your app to another vendor with only minor modifications.

Feel free to ask more questions.

How does the media get from the camera to your cloud storage? You may be able to add more workflow in your mobile app after you get a minimal viable product.

TIP: focus on the barebones functionality first to keep cost down and practice project management.

Design Tip: We use Figma design tool to prototype mobile app and web site screens. You can also use Google Slides to share your ideas. You can also draw out with paper and then take a picture of the screens. The design will likely go from low-fidelity to medium-fidelity to high-fidelity.

1 Like

@jaked It’s definitely a business decision trying to weigh the time and effort versus the result. How would it pay off having a branded app that that you can provide to your clients?

I’d like to highlight two of @craig’s great details and hints. Keeping the requirements barebones at first. Don’t make the project, especially in the beginning, bigger than it needs to be. And also the suggestion for sketching out your app. Low-fidelity is a great way to start, so you can see what you want and communicate it clearly. Having something “on paper” forces you to be specific. Even if it’s hand drawn in the beginning.

Exciting opportunity!

@jcasman I think his main question is whether the API for the THETA is still active or if interest is waning. If it’s dead, then he doesn’t want to waste time.

Obviously it’s active, but anecdotal evidence might be useful. He needs to use the WebAPI to build a mobile app.

I think he’s also looking to future proof the app.

Thanks so much for the info and tips, @craig and @jcasman!

You both relieved some of my trepidation. I’ll consolidate my ideas into a detailed outline for an RFP. I already know exactly how things should look so it’s just a matter of getting it drawn out.

I assume many of those devs are already on this forum. I saw a post a few years ago where you mentioned creating a list but I wasn’t able to find much else. Is that still available somewhere?

As @craig mentioned, I really just want to future proof a system that doesn’t rely on multiple Theta apps. Keeping it branded would just be nice to go along with the rest of my business. I would also plan on including a “Tips” section in the app to give my clients help on best practices during the shoot. This would let us consolidate our different support documents into one place while they’re already using the camera.

Unfortunately, there is no list. Part of the reason the list was difficult to create is that most people posting to this forum are developers, not in sales at their company. Thus, there’s not much incentive for them to actively promote their service. However, perhaps the biggest reason there is no list is that @jcasman and I didn’t follow up with the list creation when it didn’t organically appear. Additionally, there may be confidentiality considerations.

@jcasman here’s a revised idea:

  1. Jesse assigns developer intern at Oppkey to build private list of registered developers that are working at development houses. Jesse needs to augment list with companies we know are building apps and may not be in the forum.

THEN

  1. Jesse assigns the intern the task of sending 1:1 email to each person on the private list asking what the process is to get a proposal to build a mobile app that works with the THETA API

  2. send list of responses to people like jake when the topic comes up

OPTIONAL

  • Jesse keeps in touch with project manager to see what outcome is
  • Jesse tells intern to add list to private AI to make Jesse’s interaction with data easier

QUESTIONS:

@jaked ,

  • do you require both iOS and Android mobile apps? If so, what is the rough split between iOS and Android (example: roughly 2/3 iOS)?
  • when you said in-camera HDR, you meant in-camera JPEG HDR, right? Did you mean RAW+ HDR with a plug-in to the Z1?

I do not believe the Z1 filter for HDR, can handle RAW+.

The condition below will result in an error.

  • fileFormat is raw+ and _filter is Noise reduction, HDR or Handheld HDR

reference

I am fairly certain it’s been a majority of iOS users. Ideally I could offer both options.

We use “RAW(DNG)+JPEG” as the File Format and then set the Option Setting to “HDR Rendering”. This produces 2 files: the JPEG version that we don’t use (though it’s nice to sometimes download to phone after the shot to check things) and the RAW(DNG) HDR version, which is what we use to edit the images before building the tour.

I don’t need the app to transfer any RAW shots to the phone. As long as it could be saved on the camera like it currently does, clients manually transfer those files to the computer and upload to us.

Would that still be possible?

I believe the THETA app is only using the WebAPI and that the WebAPI cannot create a HDR merge of RAW/DNG images. It’s likely the file you are working with is just single RAW/DNG with the more detailed light images and editing capability compared to JPEG. Thus, vastly superior to JPEG, but not actually built from merging multiple DNG images, which would produce a better DNG image.

I believe the purpose of this DualFisheye RAW plug-in is to merge the DNG images inside the camera:

theta-plugins/plugins/com.hirota41.dualfisheye_plugin2 at main · ricohapi/theta-plugins · GitHub

How can we test if the DNG file is actually produced from an HDR merge? Does the metadata indicate this?

  • I don’t know if the Z1 firmware was updated to support the merge internally and if the API documentation is out of date.
  • @jcasman can you add this question to the agenda with RICOH. We can ask our contact there if they know what this produces with the older THETA mobile app:

“RAW(DNG)+JPEG” as the File Format and then set the Option Setting to “HDR Rendering”.

@jaked you may be able to find a reference online as to the capability of the camera and if it can output a merged DNG file without a plugin in Feb 2025. If you find this information, please post it here.

I’m pretty sure the resulting RAW file is actually merged. Here’s a blog post from Ricoh360:
https://blog.ricoh360.com/en/10012

Based on the information you provided, I believe the API can do this with a firmware upgrade and that someone forgot to update the API documentation. I’m going to open an issue on GitHub to try and confirm this and we’ll discuss with RICOH.

Please hold off on development until we confirm this. I need to verify that the DNG HDR merge is using only public APIs.

Thank you so much for being so helpful!

initial test by Oppkey prior to asking RICOH

Z1 with firmware 3.40.3

prep

  1. reset theta settings
  2. set to 5GHz WiFi (optional)
  3. set sleep delay to 30 minutes (optional)
  4. set off delay to 50 minutes (optional)

test configuration

  1. set filter to HDR - success
  2. set file format to {"type": "raw+","width": 6720,"height": 3360} - success

NOTE: at this point, the command should have failed if the API documentation was correct. As the command succeeded, there’s an indication already that the API docs need to be updated.

Using get options, we confirm settings:

  "name" : "camera.getOptions",
  "results" : {
    "options" : {
      "captureMode" : "image",
      "fileFormat" : {
        "height" : 3360,
        "type" : "raw+",
        "width" : 6720
      },
      "_filter" : "hdr",
      "iso" : 0,
      "offDelay" : 3000,

takePicture - success. shutter goes off once.

checking camera files from Mac laptop using USB API (since I already had the Z1 connected with a USB cable)

gphoto2 --list-files | grep dng

125   R0020001.DNG               rd 39380 KB 7296x3648 image/x-adobe-dng 1694804447
#126   R0020001_HDR.DNG           rd 52376 KB image/x-adobe-dng 0

transfer file to Mac

gphoto2 --get-file 125                      
Saving file as R0020001.DNG
photo2 --get-file 126
Saving file as R0020001_HDR.DNG              

verify 16 bit

reference article

*The new RAW (DNG) files are 16-bit, meaning the file size has increased from about 50MB to about 60MB.

Using exiftool on file with _HDR.DNG extension

exiftool -BitsPerSample R0020001_HDR.DNG
Bits Per Sample                 : 16

result: indicates that file is HDR, 16 bit

Using exiftool on control with only .DNG extension

exiftool -BitsPerSample R0020001.DNG    
Bits Per Sample                 : 12

result: indicates that the .DNG file (no HDR) is 12 bit

1 Like

@jcasman, I opened an issue on GitHub. If you have time, please add to agenda.

I could be wrong, but it looks like the API docs need to be updated. We should confirm.

@craig I’ll add it to the weekly agenda with RICOH. It’s a good question @jaked

RICOH engineering team responded

status

  • Z1 API can handle RAW+ with HDR and HhHDR (handheld HDR). project manager did not mention noise reduction, but the RAW+ can also be used with NR.
  • documentation is outdated, but they will update in the future
  • based on my test and confirmation from RICOH engineering, my personal opinion is that it’s reasonable to go forward with a Product Requirements Document
  • I do not see any technical limitation, but please assess for yourself with the technical team you choose. You can send them the link to the issue so they can understand that the API should be able to meet your requirement
  • make sure the camera is updated with the newest firmware prepare to sending out to the field. At a minimum, it needs to be 2.00.1 to get this required feature

@jaked as you’re pretty sophisticated with photography in remote places, your app may be usable by a wider audience of people that want similar features.

I don’t know anything about kickstarter projects, but maybe you could cover some of your development costs by selling it for a nominal amount and using a kickstarter project to see if there is any interest.

you could show the idea on kickstarter with Figma like this

https://youtube.com/shorts/C91u6-mhT1Y?feature=shared

The above video is not a functional app. Figma produces an interactive mockup.

1 Like

Crazy! How can we confident with Z1.