Developed by René Gimpel (an independent stereo researcher) between 2008 and 2011, Gimpel3D is recognized for its advanced modeling features not seen in similar programs (including commercial packages at the time of release).
Since the original freeware release, many of the ideas presented in G3D have become standard features in commercial software. As a result, there is no significant advantage to developing G3D as a stand-alone proprietary solution, although the codebase makes a nice platform for future research and experimentation.
René Gimpel has released all source code for G3D under the GPL so that other stereo researchers, hobbyists, and/or professionals can build upon his existing work, and integrate/test new capabilities using the projective modeling environment.
A Brief Message From René: History of Gimpel3D - The Little Drawing Program That Could:
* - Thinking outside the box; How studying art opened this programmer's mind.
I began working on G3D in 2008 while studying traditional art (perspective drawing in particular)...I had always wanted to learn to draw but had no talent (this was one of the reasons I was attracted to 3d programming in the first place)..
I had been laid off from my last "normal" job in 2006, and by 2008 I was overflowing with spare time...I started watching the 10-Minute Drawing series by Mark Chong, and I was hooked. I figured I would never be a great artist, but at the very least I could have functional skills, and maybe have some fun with it.
I approached learning to draw like most things; I ordered a ton of books on the subject and started breaking it down. I was surprised at the depth of information and technical possibilities with perspective drawing; this was way beyond the simple 1/2/3 point perspective I learned about as a kid.
In constructing my own perspective drawings (mostly Quake-style fun stuff), I learned all the tricks to maneuver around the space, and find relative sizes, project shadows, reflections, etc., all cool things that I never knew were possible on a flat page. Obviously this stuff has been established since the 1400s but it was all new to me. Programmers and artists don't mix.
In retrospect, being laid off and underemployed for those few years was a major blessing, because otherwise I would not have had the free time or initiative to study something as "useless" as art, which helped to open my eyes in more ways than one.
* - Seeing Things Differently:
As I spent more time mentally projecting my perspective drawings into 3d space, it dawned on me that once a single surface was established in space (like a floor or wall), the rest of the scene could be assembled around that starting piece, and even free-floating objects could be located in space. It's like building a 3d model on paper.
Studying the mechanics of traditional illustration had opened my mind to new possibilities I would never have considered from just a programmer's point of view. This was now officially becoming cool. Instead of modeling Quake-style environments like a normal person (in a 3d app), I could draw a scene on paper, project out the pieces using perspective, and build an actual 3d model (or at least a starting reference).
As it turns out, this reverse-perspective construction method is terrible for building actual models :), but good for front-facing stereo conversions. It seemed like such an obvious solution to 2d/3d conversion I was a bit surprised when people thought it was anything out of the ordinary.
* - Doing Things Differently:
There was misc. interest in licensing or buying my app in the early years (2008-2010), I heard many proposals, some of them funnier than others, but none I could comfortably accept. In 2011 I started work on a different "fun go-to" project and decided to set G3D aside. With nothing better to do with it, I released it into the wild :) and people seem to be getting some use out of it.
I still get emails from misc. people asking about future plans, updates, code licensing, etc., and I try to be responsive, but G3D has been off of my radar for so long I don't see myself getting back into it anytime soon (though I would like to see the right team of people take it and run with it)..
Given that the "right team" is most likely going to be other guys like me, I've decided to opensource the G3D codebase and just let the community have a go at it. I'd like to join in the fun (and I will), but there are simply too many cool things that can be done with it that I'm probably not going to get around to myself :)
NOTE: This project was a big chunk out of my life for a few years (and great fun), I look forward to seeing what it becomes in the future.
NOTE: Are you getting Windows error code 14001 when starting the program(“The application has failed to start because it’s side-by-side configuration is incorrect”)?
You need these security updates from Microsoft(the last one fixes the problem): http://www.microsoft.com/download/en/details.aspx?id=26347
(Thanks Fred M. and Chris S.!)
Gimpel3D is now independently referenced on Wiki under the main topic of 2d/3d conversion! As of January 2012, my software is one of only 4 recognized products on the market for conversion (according to Wikipedia).
Gimpel3D converts single images or frame sequences into stereoscopic 3D using a combination of traditional approaches and a proprietary projective modeling system.
The user works in true proportional space where the scene can be viewed from any location. The scene is edited geometrically in space using tools specifically designed to work with the perspective projection of the image.
This creates a virtual workspace that is intuitive for the user and proportionally accurate.
* - Wide selection of tools allow for any level of detail.
* - Easy construction of regular geometry using Auto-Alignment.
* - Complex scenes can be modeled once and re-used.
* - Surfaces can have physical contour and/or relief texturing.
* - Custom models and/or depth maps can be applied selectively.
* - Realtime anaglyph stereo view provides immediate visual feedback.
* - Objects and stereo settings can be animated and keyframed.
* - Multiple options for gap-fill and post-processing.
* - Transfer edits between varying resolutions.
* - Can import data to leverage existing pipelines and/or content.
* - Can also be used as a start-to-finish solution.
* - Extensive help documentation and examples.
Core Algorithms and Concept: - Filippo Brunelleschi
Code Implementation: - An original work by René Gimpel
I developed Gimpel3D as a pet project while studying traditional
illustration techniques. Many of the concepts used in the underlying
process can be directly traced to my original interest in drawing (this
is the main reason I was attracted to computer graphics in the 90s).
I maintain exclusive ownership of the code, and there are no other
contributors aside from a small group of volunteer testers. I also wrote
the complete help documentation and generated the examples.
I have developed a plugin system and SDK which allows me to continue developing Gimpel3D into the future. I believe there may be interest in licensing or purchasing this SDK (or the entire codebase), and/or employment opportunities doing custom integration and support.
If you believe that my skillset may be useful to your company or project, please feel free to drop me a line and discuss it, I am always willing to listen to any proposal.
Q: Will you convert my image or video if I pay you to do it?
A: No, I'm not in the conversion business, I just write software.
Q: Can I start my own conversion service using Gimpel3D?
A: Sure, it's free for commercial use, but I would appreciate a credit.
Q: How much did it cost to develop Gimpel3D?
A: $0.00. I did it at home on my own, all in my free time.
Q: How much have you made from Gimpel3D?
A: $0.00. As of the freeware release I have not made one cent.
Q: Will there be new versions in the future?
A: There are no plans for that right now, but it could change.
Q: Will you publish or release the plugin system / SDK?
A: Not as freeware, but I am open to licensing, or custom development.
Q: Are you available for consulting work for my conversion project?
A: That depends on the situation, I will be happy to hear any proposals.
FUTURE THOUGHTS & IDEAS:
For the record, Gimpel3D 2.0 is the "basic editing platform" I determined to be the bare minimum required for decent conversions. I consider it to be a good start in the right direction, not the final solution.
Naturally I have more advanced ideas (I could easily work on this for years) but nobody is paying me to do it and I have to get on to other things.
I had a great time developing the program and everyone who has gotten a whiff of it seems to be very impressed.
I would like to continue developing it full-time, but as a hobby project on the side it can only hold so much relevance.
I hope you enjoy this free version of Gimpel3D; I welcome any and all feedback.
Some Test Images Used For Development:
The anaglyph images below are a short compilation of various test images used throughout the course of development, each were chosen for different purposes as test cases for specific editing features.
NOTE: Due to licensing and copyright restrictions, it is not possible to include any of the live footage converted during development testing.
Click the images for a fullsized view.
The following videos briefly and informally demonstrate some of the most basic features in Gimpel3D:
Gimpel3D Basics - Perspective Projection:
This video shows a basic example of using the perspective projection of the image to establish the proportional 3D space and original camera view. This is usually the first step in converting any image or sequence, and provides a solid framework for more advanced editing (texture, contour, characters, moving objects, etc.).
This proportional framework can be re-used for subsequent shots or images that show the same geometry from a different viewpoint (ie. moving camera).
Gimpel3D Basics - Editing Pieces:
This video briefly demonstrates the 4 most basic editing operations for individual pieces in Gimpel3D:
These are the building blocks of scene construction in Gimpel3D. Extended editing tools (such as Depth Painting, Anchor Tools, Projection Geometry, etc.) are not covered in this video.
Gimpel3D Basics - Model Projection:
This video shows a basic example of using a generic head model to create facial features. The projection alignment is reached by associating feature points in the frame with points on the geometry model.
Once the initial position of the model is established, it can be animated and keyframed to follow the face throughout the clip.
Gimpel3D Basics - Stereo Settings:
This video demonstrates the 3 basic stereo view settings:
- Eye Separation
- Focal Depth
- Linear Scale
The stereo camera is visually represented in the 3D scene, and the effect can be previewed in anaglyph mode (as with all other editing).
Stereo settings can be animated and keyframed throughout the clip.
Gimpel3D Basics - Relief Texture:
This video demonstrates application of a procedural relief texture to a surface.
There are 3 types of adjustable relief texture available:
- Random Noise
- Grayscale Image
This is used along with other editing options (position, orientation, contour, projection geometry, depth painting, etc.) to create the final surface.
Relief texturing is useful for plants, trees, rocks, or other rough textured surfaces that would be difficult or impractical to model by hand.
Gimpel3D Basics - Anchor Points:
This video demonstrates the use of Anchor Points to "anchor" a portion of a piece to a specific location in 3D space.
The piece is treated as a flexible membrane that is stretched to fit. Multiple anchor points can be layered on a single piece. The influence range is adjustable for each anchor point, and they can be animated and keyframed independently.
Anchor points can also be used as a general sculpting tool for scene geometry.
Gimpel3D Basics - Depth Painting:
This video demonstrates the Depth Paint tools used for final touch-ups after the primary 3D editing is complete.
Depth painting is generally reserved as the last step in 3D editing, though it is possible to re-edit the underlying pieces.
The 4 Depth Paint options are:
This provides fine control over small details as well as broad control over large areas.
Gimpel3D Basics - Camera Motion:
This video demonstrates duplicating the scene geometry for all frames in the video clip. In this example, the camera position changes at each frame.
After the initial scene geometry is created, the camera path is generated from tracked feature points in screen space. Knowing the virtual camera path allows the software to re-apply the reference geometry to the entire clip.
NOTE: In Gimpel3D2, the reference geometry for a particular scene can be saved to a "Virtual Set" database and used for future video clips that show the same area.
Some of my previous work can be seen here: "Older Projects", feel free to
contact me directly if there are any questions or comments.
The code and app are 100% free, but donations are appreciated :)