Modify Material Profiles in Form 2

After stumbling across OpenFL and then realizing that it only works with the Form 1/1+ printers, I started going through the PreForm program files (for the OpenFL version of the software) and came across a folder that contains all the preloaded material profiles.

C:\Program Files\Formlabs\PreForm\Resources\Materials\FORM-2-0
(or FORM-1-0 or FORM-1-1)
NB: this file path doesn’t exist on the regular version software

It looks like each material has a different profile corresponding to .025, .05, .1 mm thickness settings. Unfortunately the files have a JSONC extension and I have been unable to figure out how to get into these files, read them, and modify them to effectively generate custom material profiles for Form2.

Anybody have any success with this? Anyone know of any development environments that can read/edit these JSONC files? I’d imagine they’re some sort of compressed/compiled version of the custom .ini material profiles uploadable for Form 1. Anybody know for sure?

Alternately, does Formlabs have any plans to adapt OpenFL so that custom material profiles can easily be uploaded for use with the Form2 printer?

Oddly enough I do not have any .jsonc files on my computer, nor do I have the path \Materials\FORM-X-X

I haven’t coded in a C language in many years, but my guess is that .jsonc is a compiled json file (binary file) which is only readable by the app itself which is probably written in some flavor of C (C++, C#, etc). This is of course done on purpose. I imagine one day the F2 will be open like the F1 and F1+. Probably not for a while.

I’m afraid it’s not going to work. FL hasn’t released openfl for the F2. I even looked in the disassembled code of preform to get some hints, but it seems that settings might be stored on the printer itself. Also if you “decode” the network stream from preform to the printer you get some hints on how it works. It’s all JSON format except for the layers which is scrambled data(probably raw data) which I didn’t bother to look into…

Thanks. I checked on the regular release of Preform software and the " Resources\Materials\FORM-X-X " path doesn’t exist. It seems like it only exists on the OpenFL software version.

I think these files are likely the material setting profiles which would indicate that material settings are dictated by software rather than the machine itself. What software did you use to parse JSON? Do you think your software might be able to parse these files copied to Dropbox from the Resources\Materials\FORM-2-0 directory (in case you don’t have the same Preform software release installed on your computer)?

Thanks for the help.

I use Notepad++ for all coding purposes. It has plugins for JSON including JSONLint. I just installed OpenFL to try but they files are compiled files, non-text based…in other words we normal humans cannot open them. @BenFrantzDale I believe is the main dev on this project. He would be the best one to chime in.

1 Like

The .jsonc files are encrypted. Regular .json files are human-readable and can be read by various json parsers such as the json Python module.

Until FL releases OpenFL for the Form 2, unless I missed something IMO, you are wasting your time.

I am only aware of 1 user on the forum that did something to be able to control the laser power outside of Preform’s resin profile. What was done and who the user is, I do not know. What was done to the printer was never discussed and I don’t remember reading anything about it lately.

With a Form 1+, OpenFL, and the API you can do almost anything you want in terms of creating custom resin profiles, peel speeds, offsets, etc. For the time being, it just isn’t available for the Form 2. The 2 printers are just too different IMO for using OpenFL to try to “break in” to edit the parameters.

I have seen the .json files you are referring to but as @BenFrantzDale stated, they are encrypted and we can not do anything with them unless you break the encryption and I assume by doing that, are in violation of the terms of service of using Preform and OpenFL.

2 Likes

Thanks all for the info everyone. Hadn’t heard of Notepad++ (downloading now.)

Thanks @BenFrantzDale. That explains why the JSONC was only spitting out gibberish. Am I correct in the assumption that these are in fact the material profiles, and that if one could get into them, custom material profiles for Form2 could be added by making modifications to these files?
Before encryption, do these files look like the Form1/1+ .INI material profile template provided on Github?

It seems odd that FL would go through the trouble of providing a special openFL software release, and then obfuscate the program files containing the parameters necessary for fine tuning our own settings.

Any way FL could provide a template of an unencrypted JSON material profile?
Additionally, would it be possible to offer an decryption/encryption tool so Form2 users can edit material profiles from the program file directory – seems like a simple way of offering openFL for Form2?

Are there plans to provide a Preform release with OpenFL for Form2?

As far as attenuating laser power, for custom materials, I can think of a couple of ways, but they all seem inelegant when the material profile settings are so close at hand, and access to so many other parameters aside from laser intensity are available for modification.

  1. intercept power to the laser and replace with PWM driver.
  2. Put tinted film between resin tray and glass.
1 Like

If I have my dates right, Open FL was officially announced May 2016 (I know it existed a bit before that). This was after the Form 2 Shipped. So my guess is ya they will open up the Form 2…but not for a while after the next printer is out in the wild…be it the F2+ or F3. I wouldn’t hold my breath.

The only one I am aware of is @MattKeeter

Best…Form2…Hack…Evar!

3 Likes

I haven’t seen that. That is very cool. There is a user here (not a FL employee) that said he (might be she) was able to do something to modify the laser intensity. Maybe I’ll search for the thread later.

@AaronB, I will give you some of my thoughts and experiences.

  1. There are material property sheets (like the custom ini file available in OpenFL’s provided example.
  2. IF you hacked into the Form 2 flavor of the file, You could probably keep the name the same and use the profile you created. BUT with this, you are voiding FL’s terms of service by hacking / reverse engineering their software. You would probably be fine until you said you did it or got caught.
  3. The files might look similar but FL will never tell you, me, anyone that doesn’t work at FL.

It is not odd that they created OpenFL and released only 1 resin profile. It also makes sense that they are not sharing all the resin profiles settings. They have (in some cases) years of time, research, and money in the resin profiles and properties. I have discussed this with FL on many occasions. Unless something changes, we are not going to get any more resin profiles decoded for us. I may not like it but I have accepted this fact a long time ago.

It is good that you asked for this information but I do not see FL releasing it.
IF FL is going to release OpenFL for the Form 2, we will all know the day they release it as they do not discuss any future plans outside FL ahead of time.

We only had 1 glimpse of what FL was planning ahead of time and that is when a 3rd party reseller mess up and posted the materials for sale the night before the announcement. I don’t think it went over well with FL and I highly doubt it will happen again.

2 Likes

OK, @DavidRosenfeld I get and respect FL’s need to protect their proprietary information, but to limit functionality of the only machine they currently sell while offering increased functionality on the outdated models only seems counterintuitive.

As a workaround (to both protect FL’s proprietary info but still offer full functionality to us,) I’m envisioning a webpage where we could select material profile parameters from a series of dropdown menus/text entry prompts. The site could send those parameters through a processor on FL’s end which would then return a downloadable JSONC material profile to paste into the material profile filepath (or past over some other material profile.) That way FL’s encryption standard/key along with their proprietary info would remain opaque to us, but we could easily create our own settings just like on the Form1. Furthermore, FL would have a way of recording & monitoring how we are using their machines which may be of some value to them as well. Unfortunately, this is not a DIY hack and would have to come from FL’s end. Any thoughts @BenFrantzDale?

1 Like

Could we also consider adding pigment as a way to attenuate the laser power?

2 Likes

I would say that our primary focus with the Form 2 is to produce quality prints reliably. While I understand why you might want to turn knobs, enabling that isn’t our focus.

Thanks. It’s just difficult to see all those shiny knobs behind the glass and not be able to turn them.

Has anyone been going through the program files for OpenFL. There are some human readable files which may suit our purpose:

1-- Formlabs\PreForm\Resources\Settings\VirtualPrinters

This folder might give us a means of tricking the software into exporting a From1+ print to a From2 printer. This probably comes with a whole host of problems, but I’m wondering if anybody’s tried it. If it’s possible, i t would essentially be a workaround to let us use any custom Form1+ material profile on the Form2 printer.

2-- Formlabs\PreForm\Resources\Settings\Form2Parameters

Form2Parameters folder contains a file " Form2MachineCodeGeneratorParameters-unused.ini " with a handful of parameters which could be set. Unfortunately none of them pertain to laser intensity or speed. And the filename suggests that it might be a vestigial remnant of code.

1 Like

Nope. Didn’t work.

switcheroo.jpg lol :grinning: