{"id":13935219,"url":"https://github.com/nodebox/nodebox-opengl","last_synced_at":"2025-07-19T20:31:15.704Z","repository":{"id":1435043,"uuid":"1649202","full_name":"nodebox/nodebox-opengl","owner":"nodebox","description":"Free, cross-platform library for generating 2D animations with Python programming code.","archived":false,"fork":false,"pushed_at":"2021-12-09T12:49:12.000Z","size":4876,"stargazers_count":168,"open_issues_count":7,"forks_count":30,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-08-08T23:20:38.363Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.cityinabottle.org/nodebox/","language":"OpenEdge ABL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nodebox.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-04-22T10:13:53.000Z","updated_at":"2024-01-04T15:52:36.000Z","dependencies_parsed_at":"2022-07-07T12:44:37.428Z","dependency_job_id":null,"html_url":"https://github.com/nodebox/nodebox-opengl","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodebox%2Fnodebox-opengl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodebox%2Fnodebox-opengl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodebox%2Fnodebox-opengl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodebox%2Fnodebox-opengl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nodebox","download_url":"https://codeload.github.com/nodebox/nodebox-opengl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226666565,"owners_count":17665043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-07T23:01:29.826Z","updated_at":"2025-07-19T20:31:15.690Z","avatar_url":"https://github.com/nodebox.png","language":"OpenEdge ABL","funding_links":[],"categories":["OpenEdge ABL"],"sub_categories":[],"readme":"NodeBox for OpenGL\n==================\n\nNodeBox for OpenGL (NOGL) is a Python module for creating 2D interactive visuals using OpenGL. It is based on the command set of the classic NodeBox for Mac OS X (http://nodebox.net). It has support for Bezier paths, text, image filters (blur, bloom, ...), offscreen rendering, animation \u0026 motion tweening, and simple 2D physics. Its purpose is to implement a small game engine for \"City In A Bottle\" (http://cityinabottle.org).\n\nVERSION\n=======\n\n1.7\n\nLICENSE\n=======\n\nBSD, see LICENSE.txt for further details.\n\nREQUIREMENTS\n============\n\nNodeBox for OpenGL is built on the excellent Pyglet module. It works on all platforms if you have Python and Pyglet installed. Note: on Mac OS 10.5, Python is already installed. On Mac OS X 10.6+ (Snow Leopard), you need to install a 32-bit version of Python (Pyglet won't work as expected with the preinstalled 64-bit version).\n\n- Python 2.5-6 : an installer can be downloaded from http://www.python.org/download/\n- Pyglet 1.4+  : an installer can be downloaded from http://www.pyglet.org/\n\nYour video hardware needs support for OpenGL 2.0.\nIf this is not the case, try updating to a new driver.\n\nINSTALLATION\n============\n\nIf you have pip, you can automatically download and install from the PyPi repository:\n\u003e pip install nodebox-opengl\n\nIf that doesn't work, download the latest version manually. To be able to import NodeBox in your scripts, Python needs to know where the module is located. There are three basic ways to accomplish this:\n\n- Put the nodebox/ folder in the same folder as your script.\n- Put the nodebox/ folder in the standard location for modules so it is available to all scripts.\n  The standard location depends on your operating system, for example:\n  /Library/Python/2.5/site-packages/ on Mac,\n  /usr/lib/python2.5/site-packages/ on Unix,\n  c:\\python25\\Lib\\site-packages\\ on Windows.\n- In your script, add the location of NodeBox to sys.path, before importing it:\n  \u003e\u003e\u003e MODULE = '/users/tom/python/nodebox'\n  \u003e\u003e\u003e import sys; if MODULE not in sys.path: sys.path.append(MODULE)\n  \u003e\u003e\u003e import nodebox\n\nIf you get an \"import pyglet\" error, make sure that Pyglet is installed in site-packages/ too.\n\nBinaries:\nNOGL contains C extensions for faster mathematics. If you want to activate them, you need to compile them from source. \nFrom the command line, do:\n\u003e cd nodebox/ext\n\u003e python setup.py\n\nUSAGE\n=====\n\n- For users coming from NodeBox for Mac OS X: this NodeBox for OpenGL does not have a built-in code editor. You can use the IDLE editor bundled with Python. On Mac OS X, we prefer TextMate (http://macromates.com).\n- From the command line, you can run a script with: python example.py (or command-R in TextMate)\n- This will open an application window with the output of your script.\n\nHere is a simple NodeBox script:\n\n\u003e\u003e\u003e from nodebox.graphics import *\n\u003e\u003e\u003e def draw(canvas):\n\u003e\u003e\u003e     canvas.clear()\n\u003e\u003e\u003e     translate(250, 250)\n\u003e\u003e\u003e     rotate(canvas.frame)\n\u003e\u003e\u003e     rect(x=-50, y=-50, width=100, height=100)\n\u003e\u003e\u003e canvas.size = 500, 500\n\u003e\u003e\u003e canvas.run(draw)\n\nIt imports the nodebox.graphics module with the standard set of drawing commands. It defines a draw() function and attaches it to the canvas, so that it will be drawn each animation frame. It opens the main application window with canvas.run().\n\nDOCUMENTATION\n=============\n\nhttp://cityinabottle.org/nodebox\n\nACKNOWLEDGEMENTS\n================\n\nAuthor: \n- Tom De Smedt (tom@organisms.be)\n\nContributing authors:\n- Frederik De Bleser\n- Lieven Menschaert\n- Giorgio Olivero\n\nContributors:\n- Karsten Wolf\n- Tuk Bredsdorff\n\nCity In A Bottle:\n- Nicolas Marinus\n- Ludivine Lechat\n- Tim Vets\n- Frederik De Bleser\n- Tom De Smedt\n\nCopyright (c) 2008-2012 City In A Bottle\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodebox%2Fnodebox-opengl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnodebox%2Fnodebox-opengl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodebox%2Fnodebox-opengl/lists"}