Skip to content

Comments

Octave Support for isetcam#37

Open
AyushJam wants to merge 9 commits intoISET:mainfrom
AyushJam:dev-octave
Open

Octave Support for isetcam#37
AyushJam wants to merge 9 commits intoISET:mainfrom
AyushJam:dev-octave

Conversation

@AyushJam
Copy link

While ISET is an amazing simulation tool, it depends on its user's having paid MATLAB licenses which might not be accessible to all individuals and organizations interested in using the toolbox.

GNU Octave is a free and open-source alternative for MATLAB. It imitates most MATLAB functionality with code and CLI but has different libraries, toolboxes, and datatypes. One third-party package of importance in isethdrsensor is openexr. With help from Brian and David, I was able to modify the current ISET codebase to work with Octave 6.4.0.

The changes are briefly described at the end of README.md and the necessary packages are listed in environment.yml and `octave-requirements.txt.

This PR goes along with the two others opened in iset3d-tiny and isethdrsensor repos. All these branches are named dev-octave. I have tested this code on Octave 6.4.0.

Hope this helps extend access to ISET!

[data, ~] = ieReadColorFilter(wave, qeFile);

% Hardcoded filter names (since Octave can't read the cell array from .mat)
filterNames = {'r', 'g', 'b'};
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we tell whether we're running under Octave and only hardcode the filter names if we are?

@wandell
Copy link
Collaborator

wandell commented Jul 26, 2025 via email

@digital-pro
Copy link
Collaborator

Brian's function looks like a good way to address the issue. 

That way the changes will be isolated to Octave users. Otherwise I don't think we have enough test coverage in our validation suite to make sure something subtle isn't broken for Matlab users.

In any case, as Brian said, this is really cool!

@AyushJam
Copy link
Author

Yes, I can indeed add an isOctave test. However, please note that apart from filterNames, there are a few other places like headers and datatypes where the flag will appear too. I'll push the update soon.

Glad you found this useful!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants