2

I'm a software developer with experience in CoreImage - very powerful native iOS/OSX framework for image processing. I admire its efficiency, understand how it works internally and want to roughly reproduce most essential parts of it on Android for commercial purposes.

My main question here is whether it's legal or not. My current points of consideration are:

  1. Whether this framework is patented or not. I haven't found any information about it and to be honest I don't even know where to look for. Is it protected from replication by default (copyright law)? They only thing I found is this "default" header in CoreImage.h file:

    /* CoreImage - CoreImage.h

    Copyright (c) 2014 Apple, Inc. All rights reserved. */

  2. If it is protected - what exact part is protected and how? Say we could split this library in a few parts:

    1. Design - high level definitions and components, their meaning and relationship, i.e. "Filter", "Pipeline", "Kernel", etc. Irrespective of specific class/method names used later in API
    2. API - actual names of classes/methods, i.e. "CIImage", "CIFilter", "CIKernel", etc., names of methods used in code, etc.
    3. Compiled executable - actual CoreImage code compiled into executable binary, of no interest in current question, but I guess worth mentioning for the whole picture

Here I'm specifically interested in replicating "Design" part of this framework. Replicating API exactly name-to-name is not mandatory in my case, but very desirable.

My question is somewhat similar to Is it illegal to implement a patented algorithm or method and take advantage from it? one of the difference being that I don't know if CoreImage is patented at all.

Another point of consideration is this Oracle-Amazon case regarding use of API.

Yet another point of consideration is game design (i.e. ideas/mechanics) not being under copyright protection, source: this GDC talk.

So to rephrase:

  1. Is it fine to reimplement this framework at all?
  2. If it is - what's the best course of action? I'd like to preserve design AND public API, but if needed can reuse only design and rename all classes/methods

UPD:

Just to make it clear - I don't have CoreImage source code (I guess no one besides Apple does) and I can't/don't intend to use it anyways. I don't have any particular code-written implementation at hand. My primary concern is all about Design.

UPD2:

I found many parts of this system to be patented so I think the question no longer stands. I'd still appreciate comments/thoughts on this topic.

4
  • With any property rights, there are several questions: Will I be sued? Will I win? What does it cost me if I win, and what does it cost me if I lose? The answer to the first question, if you manage to get anything working, is a clear "yes". The third question "a lot" and the fourth question "a lot more".
    – gnasher729
    Sep 2 at 13:59
  • 1
    @gnasher729 I'd greatly appreciate it if you elaborate on why it's so clear to you that I would be sued (just because Apple can? enforcing their rights, etc.?) and what do you mean by "a lot" here (it's kind of a very broad term)? Sep 2 at 14:35
  • If you find out whether CoreImage is patented, would your question still stand?
    – Greendrake
    Sep 3 at 0:58
  • @Greendrake judging from answers I guess the answer depends on whether "Design" part of this framework is patentable or not. Sep 3 at 6:45
2

Regarding patents, there is not likely to be a patent covering the whole thing but there might be patents covering aspects of it. It will be a very cursory view but you can use google patents to look for patents assigned to apple with key words that hit in relevant concepts.

Regarding copyright, the clone PC BIOS’s used a clean room design process to develop IBM compatible computers. It takes two separated teams and a few lawyers. The “clean” developers need to be people who do not know anything about the internals.

1
  • Thanks a lot! I found many parts of this system to be patented and I guess the question no longer stands. As for "clean room design process" - interesting approach, thanks for mentioning it! Sep 3 at 7:01
0

written works including software are protected by copyright

That means you can’t copy them or make a derivative work from them.

So, for example, your shaft ware can have a ‘Filter’ and ‘Kernel’, they just can’t use any of the same code. They can implement the same functionality but you would need to write the code to do it from scratch.

2
  • 1
    This answer is correct but misleading, I feel. "Re-implement"(from the title) to me as a developer means to write the code to do it from scratch (and the switch from iOS to Android, as well as the hardware differences, would require this to be done anyway). The question explicitly focuses on "design" which I do not believe is copyrightable (but may be patentable).
    – sharur
    Sep 2 at 22:49
  • @sharur exactly! I don't have access to original source code of CoreImage. Even if I did - I could technically compile it and use via NDK, but that would be a clear violation and out of question. I'm concerned primarily about design. I'll update the question to clarify that. Sep 3 at 6:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.