Ricoh Plug-in Development Explanation

@felislynx,

Thank you very much for your interest in the early beta program. At this first stage, we need to unlock the V directly, so we are focusing on teams in California.

However, I am sending you access to documentation on the plug-in development environment. You should be able to do a closer evaluation to understand if developing a plug-in meets your needs for your VR project.

Fream looks like it does some really great projects. If you review the documentation and are still interested, let’s talk more details about your idea and your timeframe.

DMing you directly with more information.

Jesse

Right now, someone from Ricoh needs to get physical access to the THETA V to enable developer mode. In the future, there should be software to enable developers to do this on their own. Hopefully you can send @jcasman additional information on your project.

Does it use the live streaming capability of the THETA V? Images or video?

1 Like

We hope to use both capabilities :slight_smile:

1 Like

I sent you a DM with @jcasman on the thread, so we can see if we can overcome the logistics issue of getting the developer mode on your THETA V. Please reply to the DM. It’s in the upper right corner of this interface.

I did manage to create one dual-fisheye image at 5792x2896, but I can’t replicate the test. I have the camera lying down on its case in the shot below. that’s why one of the lenses is black.


Quick question for anyone who has started playing with the plugin SDK - If a plugin requires a GUI or some type of user-defined configuration (ie. login credentials), would that require a separate companion app for iOS + Android or can the plugin app’s Android UI somehow be “streamed” to the Ricoh Theta smartphone app?

Maybe a less elegant solution (ie. parsing a text / xml file on the local storage) would suffice for now. I’m sure there will be many plugin use-cases that would be best served by a GUI, but I doubt my developers would be willing to write 3 apps (Android Plugin, iOS companion, Android companion) to solve that. Some type of “streaming” UI would be a neat solution.

The most likely use case IMO is that people will write a companion app for iOS/Android.

It is possible to stream a virtual screen of the internal Android OS to another device. For development, we’re using Vysor.

https://www.vysor.io/

The sample code does not cover building a plug-in to mirror the screen to another device, but it is possible to build your own.

Yeah, I was thinking that was going to be the case. Hmm, I guess we could handle this on the server-side if I can uniquely identify each Theta. Do you know if the serial number physically printed on the Theta matches the serial number returned by Android’s Build.SERIAL interface? If not, do you know of any other unique identifier that could be matched between the Android OS and the physical device that is user accessible?

Thanks!

I’m going to try and ask someone I know at Ricoh to see what the best way to get the ID is. I think we can get the serial number, but I haven’t checked myself yet.

Ok cool. I also have a contact there and will reach out. Last question for now - Do you know if the “cloud connectivity” is currently enabled? My plugin will need to automatically upload to the cloud through either a WiFi or paired phone connection. Is that currently possible, or is that only coming out in the Q2 update?

1 Like

At the current time (pre-release), the plug-in sample does not have an example to use cloud upload. However, as the plug-in API is basically the Android API, it is fairly straightforward to use existing Android code to upload things to the cloud.

During the pre-release phase, there is only one example plug-in code with minimal functionality. Hopefully, we’ll be able to get a small library of examples for the launch of the partner program so developers can quickly modify the examples and get up to speed.

The current sample focuses only the camera functionality, which includes image, video, and live streaming. There is greater control of the stitching.

@jcasman is helping Ricoh to organize the early access plug-in program. You may want to contact him about early access if you’re interested.

As part of the application for early-access, please send him a DM with this info:

  • tangible idea
  • engineering resource
  • motivation to finish the app

The main issue right now is that the documentation and examples for the plug-in are minimal. So, it’ll be tougher to develop now than if you wait for the program to be open to general developers. If you want to get an edge getting to market faster, going through the additional hurdles of early access might be worth it for you.

There’s a discussion here about using the camera in client-mode. You may be able to grab the camera service with NSD, assuming the plug-in connects to WiFi in client mode (which might be tricky).

1 Like

Hey @dustinkerstein, looking forward to connecting with you directly. I looked through Panomoments’ Kickstarter and current website and forums and such. I don’t see RICOH THETA mentioned explicitly in the recommended cameras areas, though it appears there’s nothing against using one. Do you have Panomoments users who use THETA currently?

Yup, sounds good. I guess my only question there is how the internet connection is handled when outside the range of WiFi. Ie. Can the Theta access the internet through the paired smartphone, and if so, is this completely transparent to the plugin SDK and just treated like a normal internet connection? The way I envision my plugin working would be to utilize one of the LED’s to inform the user of whether it’s successfully “paired” to the server (internet connectivity, config, credentials, etc.) and it would need to work on both local WiFi connections and cellular connections when paired with the Theta smartphone app. Do you think that’s possible?

Hey @jcasman, I look forward to connecting with you as well. The original focus of PanoMoments was based on the rotating capture method, but we’ve recently switched things up a bit and now allow for direct uploading of 360 video. The conversion process is now entirely automatic and any 360 video camera is technically compatible. The only real requirement is that the footage needs to be captured from a static / non-moving location. Here are a couple timelapse examples from @khufkens that were captured with the Theta S:

We’d absolutely love to see more Theta users creating PanoMoments and that’s why we’re exploring the plugin opportunity as it would allow for a 1-click creation / upload :slight_smile:

2 Likes

Ok, got it. Koen posted his work here on theta360.guide in December. No wonder I thought PanoMoments looked familiar. :slight_smile:

Hopefully another quick question - Does the plugin SDK allow you to access the higher level functions of the Theta, particularly the ability to record in-camera stitched 4k video and auto exposure? Or does it only provide access to the low level Android camera API functions?

1 Like

It provides access of the higher level functions. Feel free to ask as many questions as you want. It also helps the general community.

These are parameters for the pre-release API. This is subject to change before launch.

image

There are similar parameters for white balance and for stitching.

2 Likes

Broadcast to sound error tone

com.theta360.devicelibrary.receiver.ACTION_AUDIO_WARNING

Broadcast to launch shooting application after plugin finish

com.theta360.devicelibrary.receiver.ACTION_BOOT_BASIC
1 Like

I’m also thinking how to handle situation of plugin configuration. Should we create our own rest API to configure plugin or there will be some kind of API that will embed config into Theta app (like configuring Client mode endpoint).
Does anyone here have had issues with client mode on unlocked camera? For me it is flashing green for a while and then goes back to direct (blue) mode. I wonder if this is connected to firmware.

2 Likes

There is no standard API to embed configuration data into the THETA application. Right now, the only plan I’ve heard about is for the official Ricoh mobile application to support the selection of the active plug-in. For everything else, you’ll need to create your own framework.

I’ll pass your information on to Ricoh.

1 Like