맨위로가기

오픈프레임웍스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

오픈프레임웍스(OpenFrameworks)는 창의적인 코딩을 위한 C++ 기반의 오픈 소스 프레임워크이다. 2005년 자카리 리버만에 의해 처음 릴리즈되었으며, OpenGL, rtAudio, FreeType, freeImage, GStreamer/QuickTime/videoInput 등 다양한 라이브러리를 통합하여 사용 편의성을 높였다. Processing과 유사한 API를 제공하지만, 자체적인 IDE는 없으며, Visual Studio, Xcode, Eclipse 등의 개발 환경을 사용한다. MIT 라이선스 하에 배포되며, Processing, Cinder와 같은 경쟁 프레임워크가 존재한다. 오픈프레임웍스는 다양한 운영체제를 지원하며, 윈도우, macOS, 리눅스, 라즈베리 파이 등에서 사용할 수 있다.

더 읽어볼만한 페이지

  • C++ 라이브러리 - D-Bus
    D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다.
  • C++ 라이브러리 - Botan
    Botan은 다양한 암호화 알고리즘을 지원하는 암호화 라이브러리이며, RSA, ElGamal, AES, SHA-256 등 널리 사용되는 알고리즘을 포함하여 공개키 암호화, 공개키 서명, 키 교환, 블록 사이퍼, 스트림 사이퍼, 해시 함수 등을 제공한다.
  • 3차원 컴퓨터 그래픽스 - 픽셀 셰이더
    픽셀 셰이더는 렌더링 과정에서 픽셀의 색상을 계산하여 최종 모습을 결정하며, 텍스처, 빛, 그림자 등의 시각 효과를 구현하고, 다양한 언어로 프로그래밍되며, 그래픽 카드 및 칩셋은 지원하는 버전을 가진다.
  • 3차원 컴퓨터 그래픽스 - 모션 캡처
    모션 캡처는 물체의 움직임을 디지털 데이터로 변환하는 기술로서, CG 영상 제작에 활용되며, 센서 부착 방식에서 마커리스 방식으로 발전하여 다양한 분야에 응용된다.
  • 자유 라이브러리 - Tk (소프트웨어)
    Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다.
  • 자유 라이브러리 - SQLite
    SQLite는 D. 리처드 히프가 설계한 서버리스 구조의 임베디드 SQL 데이터베이스 엔진으로, 별도의 DBMS 없이 프로그램에 통합되어 작동하며 전체 데이터베이스를 단일 파일로 저장하는 특징이 있고, 다양한 운영체제와 환경에서 널리 사용된다.
오픈프레임웍스 - [IT 관련 정보]에 관한 문서
기본 정보
개발자Zachary Lieberman, Theo Watson, Arturo Castro
웹사이트openFrameworks 공식 웹사이트
작성 언어C++
라이선스MIT 라이선스
상세 정보
최초 출시2004년-2005년
최신 버전0.12.0
운영 체제Microsoft Windows, macOS, Linux, iOS, Android
종류응용 프로그램 프레임워크

2. 역사

openFrameworks가 OpenCV 애드온 예제를 실행하는 모습.


오픈프레임웍스(openFrameworks) v0.01은 자카리 리버먼(Zachary Lieberman)에 의해 2005년 8월 3일에 처음 공개되었다. 2006년 2월에는 버전 v0.03이 뉴욕 시에 있는 파슨스 디자인 스쿨(Parsons School of Design)의 학생들에 의해 사용되었다.[2]

개발자인 자카리 리버먼에 따르면, 오픈프레임웍스는 다음과 같은 목적을 가진 사람들을 위해 개발되었다.

> ... 창의적이고 예술적인 표현을 위해 컴퓨터를 사용하며, 미디어 내부의 데이터에 낮은 수준으로 접근하여 조작, 분석 또는 탐구하려는 사람들을 위해 만들어졌습니다. 우리는 해당 대상층이 기존의 C++ 라이브러리들로부터 충분한 지원을 받지 못하고 있다고 느꼈습니다.[2]

오픈프레임웍스 개발 프로젝트는 2004년부터 2005년에 걸쳐 순차적으로 시작되었다. 현재는 소리, 빛, 영상, 센서, 액추에이터 등 다양한 기술을 통합하여 표현하기 위한 기반으로 활용되고 있다. 오픈프레임웍스 자체는 각 분야에서 널리 사용되는 라이브러리들(OpenGL, OpenCV, 소켓(Socket) 등)을 서로 연결하는 '글루 코드(glue code)'의 역할을 주로 수행한다.

오픈프레임웍스는 "코드와 관련된 여러 가지 사항을 훨씬 더 용이하게 해주는 도구"[14]로 평가받는다. 자주 사용되는 다양한 라이브러리를 하나로 묶고, 이 라이브러리들의 사용을 간소화하기 위해 자체적으로 개발한 기능을 포함하는 일종의 '풀(pool)'과 같은 툴킷이다. 이를 통해 다음과 같은 다양한 기능을 제공한다.

openFrameworks에서 사용할 수 있는 라이브러리와 그 기능[14]
기능라이브러리
그래픽스OpenGL, GLEW, GLUT, libtess2, cairo
오디오 입력/출력 및 분석rtAudio, PortAudio 또는 FMOD, Kiss FFT
폰트FreeType
이미지 읽기 및 저장FreeImage
동영상 재생 및 캡처QuickTime, videoInput
다양한 유틸리티Poco



공식 웹사이트에는 튜토리얼이 제공되지만, 모든 기능을 포괄적으로 다루지는 않는다. 사용자는 GitHub의 ofSite 디렉토리를 포크(fork)하여 직접 튜토리얼을 게시할 수도 있다. 또한, 공식 웹사이트에는 주요 애드온을 포함한 문서가 있으며, 공식 위키도 운영되고 있다.

3. 특징

오픈프레임웍스는 기존의 다양한 라이브러리를 통합하여 손쉽게 사용할 수 있도록 설계되었다. 그래픽에는 OpenGL, 오디오에는 rtAudio, 글꼴에는 프리타입, 이미지 처리에는 freeImage, 비디오 재생에는 GStreamer(리눅스), 퀵타임(macOS) 또는 videoInput(윈도우) 등이 사용된다.[16]

2004년부터 2005년에 걸쳐 개발이 시작된 오픈프레임웍스는 소리, 빛, 영상, 센서, 액추에이터 등 다양한 기술을 통합하여 표현하기 위한 기반으로 활용되고 있다. 오픈프레임웍스 자체는 각 분야에서 널리 쓰이는 라이브러리들(OpenGL, OpenCV, 소켓 통신 라이브러리 등)을 서로 연결하는 글루 코드(glue code)의 역할을 주로 수행한다. 이는 "코드와 관련된 여러 가지 사항을 훨씬 더 용이하게 해주는 도구"[14]로 평가받는다. 즉, 자주 사용되는 여러 라이브러리를 묶고, 이를 간편하게 사용할 수 있도록 자체 개발한 기능을 더한 일종의 툴킷이다.

오픈프레임웍스에서 사용할 수 있는 주요 라이브러리와 기능은 다음과 같다.

오픈프레임웍스에서 사용할 수 있는 라이브러리와 그 기능[14]
기능라이브러리
그래픽스OpenGL, GLEW, GLUT, libtess2, cairo
오디오 입력/출력 및 분석rtAudio, PortAudio 또는 FMOD, Kiss FFT
폰트FreeType
이미지 읽기 및 저장FreeImage
동영상 재생 및 캡처QuickTime, videoInput
다양한 유틸리티Poco



오픈프레임웍스는 Processing과 유사한 API를 가지고 있어 그래픽을 쉽게 다룰 수 있도록 설계되었다. 필요에 따라 독자적인 셰이더를 구현하는 것도 가능하다. 하지만 Processing처럼 자체적인 IDE를 제공하지는 않는다. 대신 Visual Studio, Xcode, Eclipse 등 기존의 개발 환경을 사용해야 하므로, 개발 환경 설정이 다소 복잡하며 소프트웨어 개발 환경에 대한 지식이 필요하다. 사용 언어 역시 C++로, 코딩 자체에 익숙해질 필요가 있다. 따라서 CG 표현을 주로 다루는 미디어 아트 제작 환경으로서는 초보자부터 고급 사용자까지 포괄하지만, 프로그래밍 입문자에게는 다소 어려울 수 있다. Processing처럼 풍부한 예제가 담긴 API 레퍼런스나 실용적인 샘플 코드가 부족한 편이어서, Processing 사용 경험이 있는 경우 오픈프레임웍스로 전환하는 것이 이해하기 쉬울 수 있다.

오픈프레임웍스는 CG나 이미지 처리를 효율적으로 하기 위해 API가 간소화되어 있다. 다양한 라이브러리를 쉽게 가져와 사용할 수 있는 '''사용 편의성'''과 '''단순성'''을 갖추고 있으며[14], 사용자가 직접 기능을 확장할 수 있도록 애드온(add-on)을 도입하거나 제작할 수 있다는 점도 특징이다.

공식 웹사이트에는 튜토리얼과 문서(주요 애드온 포함)가 제공되며, 공식 위키도 운영되고 있다. 사용자는 GitHub의 ofSite 저장소를 포크(fork)하여 직접 튜토리얼을 게시할 수도 있다.

4. 설치

오픈프레임웍스는 별도의 IDE를 제공하지 않으며, 특정 설치 과정 없이 소스 코드 형태로 제공된다. 오픈프레임웍스를 사용하기 위한 기본적인 준비 과정은 다음과 같다.

# C++ 개발을 위한 컴파일러를 선택한다.

# 사용 중인 운영 체제에 맞는 컴파일러IDE를 다운로드하여 설치한다.

# 최신 버전의 오픈프레임웍스 릴리즈를 다운로드한다.

4. 1. 운영 체제별 IDE 설치


  • '''윈도우''':

: 윈도우에서는 마이크로소프트 비주얼 스튜디오나 QT Creator를 설치한다.

:* VS < 2017, 2019 가이드

:* QT Creator 설치 가이드

  • '''맥 OSX''':

: 맥 OSX 사용자는 Xcode를 설치한다.

:* Xcode 가이드

  • '''리눅스''':

: 리눅스 사용자는 Qt Creator를 설치한다.

:* 리눅스 설치 가이드

:* QT Creator 설치 가이드

:* 2019년부터 vscode용 템플릿이 사용자 기여로 공식 배포판의 projectGenerator에 추가되었다. (포럼 링크)

  • '''라즈베리파이''':

: 라즈베리파이 사용자는 라즈베리파이 재단에서 제공하는 공식 운영 체제인 라즈비안 또는 아치 리눅스를 사용할 수 있다.

:* 라즈비안 설치 가이드

:* 아치 리눅스 설치 가이드

4. 2. 릴리즈 다운로드

사용자들은 공식 홈페이지의 [http://www.openframeworks.cc/download 다운로드] 메뉴에서 최신 버전의 릴리즈를 내려받을 수 있다. 모든 버전은 운영 체제와 IDE에 따라 별도로 제공된다.

과거 v0.05 버전 출시 이후에는 일반 버전과 FAT 버전으로 구분하여 제공된 적이 있다. FAT 버전에는 OpenCV, 벡터 출력 및 연산, OSC, 네트워크 통신 등 다양한 추가 기능(addons)이 포함되어 있었다.

현재는 이러한 구분이 없어졌으며, 추가 기능(addons)은 해당 운영체제에 맞춰 단일 공식 릴리즈에 포함되어 제공된다.

5. 오픈프레임웍스 구조

오픈프레임웍스는 다양한 소프트웨어 라이브러리를 통합하여 제공하며, 이러한 내부 라이브러리의 기능들을 쉽게 사용할 수 있도록 함수클래스를 제공한다. 2004년부터 2005년에 걸쳐 개발이 시작되었으며, 현재는 소리, 빛, 영상, 센서, 액추에이터 등 다양한 기술을 통합하여 표현하기 위한 기반으로 활용되고 있다.

오픈프레임웍스 자체는 OpenGL, OpenCV, 소켓(Socket) 등 각 분야에서 널리 사용되는 유명 라이브러리들을 연결하는 일종의 접착제(glue code) 역할을 한다. "코드와 관련된 여러 가지 사항을 훨씬 더 용이하게 해주는 도구"[14]라고 불리기도 하는데, 자주 사용되는 다양한 라이브러리를 묶고 사용법을 간소화하여 마치 하나의 '풀(pool)'처럼 작동하는 툴킷이다. 이를 통해 그래픽스, 오디오, 폰트, 이미지, 동영상 처리 등 다양한 기능을 쉽게 구현할 수 있다.

공식 웹사이트에서는 튜토리얼을 제공하며(모든 기능을 상세히 다루는 것은 아님), 사용자는 GitHub를 통해 직접 튜토리얼을 게시할 수도 있다. 또한, 공식 웹사이트에는 주요 추가 기능(애드온)을 포함한 문서와 공식 위키가 운영되고 있다.

5. 1. 폴더 구조

오픈프레임웍스를 내려받으면, `libraries`, `addons`, `examples` 등 여러 폴더를 확인할 수 있다. 주요 폴더의 내용은 다음과 같다.

; addons

: OpenCV, OSC 등 다양한 추가 기능(애드온)이 담겨 있는 폴더이다. 기본 애드온 외에도 사용자가 직접 다운로드하거나 작성한 것을 복사하여 추가할 수 있다. 사용자들이 직접 만든 다양한 애드온은 [https://ofxaddons.com/categories 별도의 페이지]에서 확인할 수 있다.

; apps

: 직접 작성한 프로젝트들이 저장되는 폴더이다.

; examples

: 다양한 예제가 저장되어 있어 오픈프레임웍스를 처음 접하는 사용자가 스스로 학습하는 데 도움을 준다. "3d", "video", "graphics" 등으로 종류별로 나뉘어 있다.

; libs

: 오픈프레임웍스의 핵심(코어) 라이브러리가 담겨 있다.

; scripts

: 기본 템플릿 등 개발 환경을 설정할 수 있는 스크립트들이 포함되어 있다. 비주얼 스튜디오 등을 사용하는 경우에는 이 폴더 내의 스크립트를 실행하지 않아도 된다(비주얼 스튜디오의 내장 컴파일러가 자동으로 컴파일하기 때문이다). 하지만 Ubuntu 등에서 Code::Blocks 같은 IDE를 사용하는 경우에는 먼저 컴파일을 해야 오류가 발생하지 않는다.

; projectGenerator

: 오픈프레임웍스가 링크된 빈 프로젝트를 생성하고 사용자가 선택한 애드온을 추가하는 프로그램이 들어있다. 이 프로그램 자체도 오픈프레임웍스로 작성되었다. 이 프로그램을 사용하지 않을 경우, `apps` 폴더 내의 `emptyExample`을 복사하여 사용할 수도 있다.

오픈프레임웍스를 사용할 때는 내려받은 패키지의 폴더 구조(계층 구조)를 그대로 유지하는 것이 매우 중요하다. 응용 소프트웨어가 내부 폴더들과 상대 경로로 연결되도록 구성되어 있기 때문에, 폴더를 옮기거나 이름을 변경하면 컴파일 오류가 발생할 수 있다.

새로운 프로젝트를 생성할 때는 `apps` 폴더 안의 `examples` 폴더에 있는 예제 애플리케이션들과 동일한 폴더 구조를 따라야 한다. 오픈프레임웍스 다운로드 시 함께 제공되는 프로젝트 생성기([https://openframeworks.cc/learning/01_basics/create_a_new_project/ projectGenerator])를 사용하면 올바른 폴더 구조에 맞춰 프로젝트가 자동으로 생성된다. 윈도우에서 비주얼 스튜디오를 사용하는 사용자는 [https://openframeworks.cc/setup/vs/ 별도의 절차]를 통해 새로운 프로젝트를 생성할 수 있다.

5. 2. 코드 구조

오픈프레임웍스의 코드 구조는 다음과 같다.

  • '''main.cpp''': 이 파일은 C++ 컴파일러에게 프로그램 내에서 사용할 리소스를 알려주고, 프로그램을 실행시키는 역할을 한다.

  • '''ofApp''': 실제 코딩은 ofApp.h와 ofApp.cpp 파일 내에서 이루어진다. 사용자는 기본적으로 setup(), update(), draw() 함수와 다양한 마우스, 키보드 입력 함수를 사용할 수 있다.
  • '''setup()''': 응용 프로그램이 시작될 때 한 번만 실행된다. 주로 변수 선언이나 업데이트가 필요 없는 설정을 초기화하는 데 사용된다.
  • '''update()''': 매 프레임마다 계속해서 실행된다. 하지만 화면에 직접 무언가를 그리는 함수(예: ofDrawCircle())는 아래의 draw() 함수 내에서 호출해야 한다.
  • '''draw()''': update() 함수처럼 매 프레임마다 반복 실행되지만, 이 함수 안에 작성된 코드만이 실제로 화면에 그림을 그리는 데 관여한다.


오픈프레임웍스는 "코드와 관련된 여러 가지 사항을 훨씬 더 용이하게 해주는 도구"[14]로 평가받는다. 자주 사용되는 여러 라이브러리를 하나로 묶고, 사용법을 간소화하기 위한 자체 코드를 더한 일종의 '풀(glue)' 같은 툴킷이다. 이를 통해 다음과 같은 다양한 기능을 제공한다.

오픈프레임웍스에서 사용할 수 있는 라이브러리와 그 기능[14]
기능라이브러리
그래픽스OpenGL, GLEW, GLUT, libtess2, cairo
오디오 입력/출력 및 분석rtAudio, PortAudio 또는 FMOD, Kiss FFT
폰트FreeType
이미지 읽기 및 저장FreeImage
동영상 재생 및 캡처QuickTime, videoInput
다양한 유틸리티Poco



공식 웹사이트에는 튜토리얼이 제공되며(모든 기능을 상세히 다루지는 않음), 사용자는 GitHub에서 ofSite 디렉토리를 포크하여 직접 튜토리얼을 게시할 수도 있다. 또한, 공식 웹사이트에는 주요 애드온을 포함한 문서와 공식 위키가 운영되고 있다.

오픈프레임웍스의 라이브러리 폴더 구조는 다음과 같다.

; addons

: 오픈프레임웍스 기본 기능 외에 추가 기능을 제공하는 "애드온"이 들어있는 폴더. 기본 애드온 외에 사용자가 직접 다운로드하거나 만든 애드온을 이곳에 복사하여 사용할 수 있다.

; apps

: 사용자의 프로젝트 파일을 넣는 폴더.

; docs

: 문서 관련 파일이 포함된 폴더.

; examples

: 오픈프레임웍스 사용 예제가 들어있는 폴더. "3d", "video", "graphics" 등 기능별로 분류되어 있다.

; export


  • '''libs'''

: 라이브러리 파일들이 포함된 폴더.

  • '''other'''

: 기타 파일들이 포함된 폴더.

  • '''projectGenerator'''

: 오픈프레임웍스 프로젝트의 기본 틀을 생성하고 선택한 애드온을 추가해주는 프로그램이 들어있는 폴더. 이 프로그램 자체도 오픈프레임웍스로 만들어졌다. 이 도구를 사용하지 않으려면, apps 폴더 안의 emptyExample 폴더를 복사해서 사용해야 한다.

  • '''scripts'''

: 오픈프레임웍스를 컴파일하는 데 필요한 쉘 스크립트가 들어있는 폴더. Visual Studio와 같은 통합 개발 환경(IDE)을 사용하면 내장 컴파일러가 자동으로 처리해주므로 이 스크립트를 실행할 필요는 없다. 하지만 우분투 등에서 Code::Blocks 같은 IDE를 사용할 경우, 먼저 이 스크립트를 이용해 컴파일해야 오류가 발생하지 않는다.

5. 3. 헬로 월드 (Hello World) 예제

가장 기본적인 오픈프레임웍스 응용 프로그램을 만들려면 `apps/myApps` 폴더 안에 있는 `emptyProject` 프로젝트를 사용하면 된다. C++ 콘솔 창에 "Hello World"를 출력하는 가장 간단한 방법은 `ofApp.cpp` 파일 안의 `setup()` 함수를 다음과 같이 수정하는 것이다.



void ofApp::setup(){

// 콘솔에 "Hello World" 출력

cout << "Hello World" << endl;

}



하지만 화면에 직접 "Hello World"를 표시하는 다음 코드가 오픈프레임웍스의 특징을 더 잘 보여주는 예시이다.

이 코드를 실행하기 위해서는 프로젝트 폴더 안의 `bin/data` 폴더에 글꼴 파일(예: `verdana.ttf`)을 미리 넣어 두어야 한다. 원하는 다른 글꼴 파일을 사용해도 된다.

먼저 헤더 파일(`ofApp.h`)에 글꼴 객체를 선언한다.



// ofApp.h

#pragma once

#include "ofMain.h"

class ofApp : public ofBaseApp{

public:

void setup();

void update();

void draw();

// ... 기타 함수들은 생략 ...

ofTrueTypeFont font; // 글꼴 객체 선언

};



그 다음, 소스 파일(`ofApp.cpp`)에서 `setup()` 함수와 `draw()` 함수를 수정한다. `setup()` 함수에서는 글꼴 파일을 불러오고, `draw()` 함수에서는 화면에 글자를 그린다.



// ofApp.cpp

#include "ofApp.h"

//--------------------------------------------------------------

void ofApp::setup(){

// "verdana.ttf" 파일을 불러와 글자 크기를 32로 설정한다.

// 글꼴 파일은 "bin/data" 폴더에 있어야 한다.

font.loadFont("verdana.ttf", 32);

}

//--------------------------------------------------------------

void ofApp::update(){

// 이 예제에서는 update 함수를 사용하지 않는다.

}

//--------------------------------------------------------------

void ofApp::draw(){

// 글자 색상을 녹색(RGB: 0, 255, 0)으로 설정한다.

ofSetColor(0, 255, 0);

// 화면의 (100, 100) 위치에 "Hello World" 문자열을 그린다.

font.drawString("Hello World", 100, 100);

}


5. 4. 추가 기능 (addons)

오픈프레임웍스는 기본 라이브러리 외에도 다양한 추가 기능(addons)을 제공한다. FAT 버전을 내려받으면 addons 폴더 안에 여러 추가 기능이 기본적으로 설치되어 있다. 기본 설치 addons 중 일부는 다음과 같다.[17]

  • '''ofxAssimpModelLoader''': 3ds, obj 파일과 같은 3D 모델링 데이터를 불러오고 관리한다.
  • '''ofxXmlSettings''': XML 파일을 저장하고 불러오는 기능을 제공한다.
  • '''ofxOsc''': OSC 프로토콜을 사용한 통신을 지원한다.
  • '''ofxOpenCv''': 인텔OpenCV 라이브러리를 활용하여 컴퓨터 비전 기능을 사용할 수 있게 한다.
  • '''ofxNetwork''': UDP와 TCP 통신을 이용한 크로스 플랫폼 네트워크 관련 코드를 포함한다.
  • '''ofxVectorGraphics''': CreEPS를 위한 내용을 포함한다.
  • '''ofxGui''': GUI를 쉽게 만들어 사용할 수 있도록 돕는다.
  • '''ofxKinect''': MS엑스박스용으로 개발한 키넥트 센서를 사용할 수 있게 한다.


오픈프레임웍스의 라이브러리 폴더 구조에는 'addons' 폴더가 포함되어 있다. 이 폴더에는 오픈프레임웍스 자체가 제공하는 기능 외에 추가적인 기능을 구현하는 "애드온"들이 들어있다. 기본으로 제공되는 애드온 외에도 사용자가 직접 내려받거나 작성한 애드온을 이 폴더에 복사하여 사용할 수 있다.

6. 라이선스 정책

오픈프레임웍스는 MIT 허가서에 따라 배포된다. 프레임워크에 포함된 각 라이브러리는 자체 라이선스를 따른다.[2]

7. 관련 프로젝트

전 세계의 다양한 크리에이터들이 오픈프레임웍스를 사용하여 프로젝트를 제작하고 있다. 주요 프로젝트는 다음과 같다.

프로젝트명제작자
[https://web.archive.org/web/20080406043543/http://www.ni9e.com/graffiti_analysis.html graffiti analysis project]Evan Roth
[https://web.archive.org/web/20090723122724/http://muonics.net/site_docs/work.php?id=15 audio space]Theodore Watson
[https://web.archive.org/web/20100322225608/http://www.thesystemis.com/drawnInstallation/ drawn]Zach Lieberman
[https://web.archive.org/web/20070304104152/http://www.beigerecords.com/cory/Exhibitions/ colors]Cory Arcangel
[https://web.archive.org/web/20090416224457/http://a.parsons.edu/~christine/thesis/ re-gaze]Chris Sugrue
[https://web.archive.org/web/20100310220137/http://graffitiresearchlab.com/?page_id=76 L.A.S.E.R. Tag]Theo Watson / Graffiti Research Lab
[https://web.archive.org/web/20100722003856/http://www.eyewriter.org/ EyeWriter]Free Art and Technology (F.A.T.), 오픈프레임웍스, Graffiti Research Lab, The Ebeling Group, TEMPTONE
[https://web.archive.org/web/20101121095043/http://www.playthemagic.com/ Magic Torch]Alberto García, Julio Obellerio, Martín Nadal, Alberto Cortés
[http://memento.smugo.com/ Memento]Jeldrik Schmuch, Ulrike Gollner
[https://web.archive.org/web/20100609085418/http://www.exile.at/sacre/ Le Sacre du Printemps]Klaus Obermaier, Ars Electronica Futurelab, Chris Sugrue, Matthias Bauer
[https://web.archive.org/web/20090201022806/http://touchkit.nortd.com/ TouchKit Multitouch System]NOR_/D



오픈프레임웍스는 창의적인 코딩에 중점을 두고 미디어, 하드웨어, 통신을 위한 강력한 라이브러리에 대한 단순화된 인터페이스를 제공한다는 점에서 Processing 언어와 유사하다. 오픈프레임웍스와 Processing의 가장 큰 차이점은 오픈프레임웍스가 Java가 아닌 C++로 작성되었다는 점이다. 사용자는 두 라이브러리 사이에 많은 유사점을 발견할 수 있는데, 예를 들어 Processing의 `beginShape()` 함수는 오픈프레임웍스의 `ofBeginShape()` 함수와 동일한 기능을 한다. 오픈프레임웍스 위키에는 Processing에서 오픈프레임웍스로 전환하는 사용자를 위한 문서도 마련되어 있다.[12]

또 다른 유사한 프로젝트로는 창의적인 프로그래밍을 위한 C++ 라이브러리 프레임워크인 Cinder가 있다. 주요 차이점은 오픈프레임웍스가 오픈 소스 라이브러리에 더 많이 의존하여 고급 프로그래머에게 더 많은 제어 권한과 투명성을 제공하는 경향이 있다는 것이다. 반면, Cinder는 기반 운영 체제에 내장된 라이브러리에 더 많이 의존하는 경향이 있다.

전 세계의 다양한 크리에이터들이 오픈프레임웍스를 사용하여 프로젝트를 제작하고 있으며, 이러한 프로젝트들을 소개하는 사이트로는 CAN 등이 있다.

8. 한국에서의 활용

(현재 섹션에 해당하는 내용이 원본 소스에 존재하지 않습니다.)

9. 경쟁 프레임워크

오픈프레임웍스와 유사한 목적을 가진 다른 프로그래밍 프레임워크들이 존재한다. 대표적으로 프로세싱과 신더가 있다.


  • 프로세싱: 자바를 기반으로 하며, 전자 예술이나 시각 디자인 커뮤니티를 위해 만들어졌다. 오픈프레임웍스는 창의적인 코딩에 중점을 두고 미디어, 하드웨어, 통신을 위한 라이브러리에 단순화된 인터페이스를 제공한다는 점에서 프로세싱과 유사하다. 가장 큰 차이점은 오픈프레임웍스가 C++로 작성된 반면, 프로세싱은 자바로 작성되었다는 점이다. 두 프레임워크 사이에는 문법적으로도 유사한 부분이 많아, 예를 들어 프로세싱의 `beginShape()` 함수는 오픈프레임웍스의 `ofBeginShape()` 함수와 동일한 기능을 수행한다. 오픈프레임웍스 위키에는 프로세싱에서 넘어온 사용자를 위한 안내 문서도 마련되어 있다.[12]

  • 신더: C++를 기반으로 하는 프레임워크로, 주로 고급 시각화 작업에 사용된다. 신더는 창의적인 프로그래밍을 위한 C++ 라이브러리라는 점에서 오픈프레임웍스와 유사하다. 주요 차이점은 의존성 관리 방식에 있다. 오픈프레임웍스는 다양한 오픈 소스 라이브러리에 더 많이 의존하여 고급 프로그래머에게 더 많은 제어 권한과 투명성을 제공한다. 반면, 신더는 운영 체제에 내장된 라이브러리에 더 의존한다. 광고 대행사 The Barbarian Group이 오픈프레임웍스의 등장에 영감을 받아 신더 개발을 시작했으며, 칸 라이언즈의 Innovation Lions 부문 수상으로 업계의 주목을 받았다. 이 과정에서 개발사가 먼저 나온 프레임워크인 오픈프레임웍스를 존중하지 않는 듯한 발표를 하여 논란이 되기도 했다. 신더는 오픈프레임웍스만큼 기능이 광범위하지는 않지만, CG 표현 능력은 동등한 수준으로 평가받는다. 홍보 등의 영향으로 업무 환경에서의 점유율은 오픈프레임웍스보다 높은 편이다. 또한, 신더는 윈도우와 macOS 환경은 지원하지만 리눅스는 지원하지 않는다는 차이점이 있다.

참조

[1] 웹사이트 Contributors to openframeworks/OpenFrameworks https://github.com/o[...]
[2] 웹사이트 openFrameworks FAQ http://www.openframe[...] 2016-04-10
[3] 웹사이트 Drawn https://web.archive.[...] 2022-12-22
[4] 웹사이트 Zach Lieberman and Golan Levin at NTT ICC http://rhizome.org/e[...] 2022-12-24
[5] 웹사이트 AUDIO SPACE https://theowatson.c[...] 2022-12-22
[6] 웹사이트 LASER TAG https://theowatson.c[...] 2022-12-22
[7] 웹사이트 EYEWRITER https://theowatson.c[...] 2022-12-22
[8] 간행물 Colors Personal Edition https://coryarcangel[...] 2018
[9] 웹사이트 'Colors', Cory Arcangel, 2006 https://www.tate.org[...] 2022-12-24
[10] 웹사이트 Interactive 'Starry Night' Brings The Painting To Life https://www.huffpost[...] 2022-12-24
[11] 웹사이트 Super Hexagon brings concentric chiptune madness to BlackBerry 10 https://www.engadget[...] 2013-02-10
[12] 웹사이트 openFrameworks for Processing users http://openframework[...] 2016-04-10
[13] 문서 openFrameworks 다운로드 http://openframework[...]
[14] 문서 openFrameworks about http://openframework[...]
[15] 문서 日本語版オフィシャルウェブサイト http://openframework[...]
[16] 웹인용 about {{!}} openFrameworks https://openframewor[...] 2023-06-01
[17] 문서 openFrameworks http://www.openframe[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com