Convert 2D image to 3D solid with texture (Python)

Hello Python 3D modeling/visualization experts!

I'd like you to write Python code to convert 2D pictures into 3D printabale STL and VRML(or X3D) files, by interpreting grayscale color value of pixel as height. My preferred 3D library is VTK with Python binding.

Required functionality


1. Read 2D image (PNG, JPEG, GIF, etc as long as PIL or matplotlib's imread support)

2. Convert image to grayscale

3. Create 3D surface mesh by interpreting grayscale color value of each pixcel in 2D image as z axis height (warp height map?)

4a. Create flat bottom surface at certain z (specified by elevation argument)

4b. Create 3D bottom surface beneath (specified by thickness argument) the top surface created in step 3 by projecting all the vertices downwards along normal vectors (Note: it's not a simple offset in z direction)

5. Connect the two surfaces to make water tight solid for 3D printing

6. Cut out solid where z is less than certain value (specified by z_mask argument) i.e. take CSG intersection

7. Export the resulting solid as STL file

8. Map colored 2D image as texture onto the top 3D surface (image read in step 1 or another texture image)

9. Setup lighting(s), camera, etc and take a screenshot of rendering

10. Export it as VRML2.0 (or X3D) file and package it up for 3D color print at Shapeways

For step 4&5, please refer to:

[url removed, login to view]

[url removed, login to view]

[url removed, login to view]

Basically I'd like you to replicate above surf2solid Matlab code for Python. Hopefully majority of functionality needed are readily available in existing Python libraries (VTK, Matplotlib, FreeCAD, etc).

For step 10, please refer to the guidance by Shapeways:

[url removed, login to view]

Other requirements


* Implement as an importable module with 'if __name__ == "__main__":' to take command line arguments for testing (no need for GUI)

* Take "resolution" argument with default 0.1 mm/pixel

* Use Python logging facility to output debug messages

* Add reasonable amount of comments in code so that I can maintain it later

* Try to follow PEP8 Style Guide for Python Code

* Frequent communication; One line status update once in two days; describing which part you are working on

* All the outcome of the project belong to the project owner

Sharing code by git would be nice. Private repo on GitHub or Bitbucket would be excellent.

Target environment


Windows 7 32bit and linux (Ubuntu 13.10 64bit on Pythonanywhere)

Python 2.7

Preferred libraries (use as needed)


VTK 5.8.0

numpy 1.8.1

scipy 0.14.0

matplotlib 1.3.1

PIL 1.1.7

scikits-image 0.7.1

FreeCAD 0.14

You could use any other Python libraries as long as they are listed here (for Ptyhon2.7)

[url removed, login to view]

Please consult in advance if you'd like to use other Python libraries which is not listed in above list or if you'd like to use non-Python tools. All libraries/tools must be BSD-like license (i.e. ok for commercial use) and must be CLI (i.e. No GUI)

What I provide as the project owner

* Requirement (this document)

* Example files (attached)

* Feedback as the project progress

* Reward as agreed at the start of project

What you provide as a developer

* Technical advice on requirements

* Source code

Project time frame and milestone

I’d expect the project to be completed in about two weeks.

1st milestone: Requirements agreed and identified libraries to use (1/4 of reward)

2nd milestone: 1st version (proof of concept) submitted (1/4 of reward)

3rd milestone: 2nd version (functional) submitted (1/4 of reward)

4th milestone: Final version submitted and project completed (1/4 of reward)

Taidot: 3D-mallinnus, 3D-renderointi, englanti (Yhdysvallat), Matlab ja Mathematica, Python

Näytä lisää: www 3d printing, where to make blogs, what to read blogs, what is stl, what is 3d visualization, warp project, vectors tutorials, vectors library, value tutorials, tutorials on testing, top tutorials, texture 3d, technical flat, stl vectors, stl tutorials, stl map example code, stl map example, stl map, stl list example, stl list

Tietoa työnantajasta:
( 8 arvostelua ) Urayasu-shi, Japan

Projektin tunnus: #6472241

Myönnetty käyttäjälle:


Good evening, I've been studying your project and I see that you are an excellent planner. This makes our collaboration easier. I am very interested in 3D modeling and visualization. I have worked for over 7 years Lisää

$444 USD 10 päivässä
(1 arvostelu)

10 freelanceria on tarjonnut keskimäärin %project_bid_stats_avg_sub_26% %project_currencyDetails_sign_sub_27% tähän työhön


I am ready to start work asap. I am working in this field since year 2000 and lot of experience in this field. I am also working as freelancer for long time. For quality of my work pls review my feedback's for quality Lisää

$578 USD 3 päivässä
(109 arvostelua)

Dear Client Our Python Case Studies: [login to view URL] [login to view URL] We are also open for technical interview. We are ready to start the project immediatel Lisää

$618 USD 7 päivässä
(12 arvostelua)

Hello Sir/Mam, I fully understood your requirements. I am experienced 3D or 2D artist, I have already had terrific experiences in (modelling, texturing, product designing, exterior and interior design, graphic des Lisää

$210 USD 3 päivässä
(10 arvostelua)

First of all, thank you for your invitation. I'm aware I'm above your stipulated budget, but hopefully we can negotiate something. I've done lots of computer graphics (my master's degree was on computer graphics) an Lisää

$555 USD 10 päivässä
(9 arvostelua)

Hi, We have gone through your requirement and we understand that you are looking for highly skilled, qualified, and experience Development team for your project. As our teams have work on several similar projects Lisää

$979 USD 15 päivässä
(2 arvostelua)

A proposal has not yet been provided

$400 USD 5 päivässä
(12 arvostelua)

Hello, I have looked upon your requirements and i am ready to make creative and eye catching designs. You can see my previous work on my portfolio : My Portfolio: [login to view URL] S Lisää

$154 USD 3 päivässä
(1 arvostelu)

I can do all this with grasshopper please let me know if you are interested in me. My name is Francisco Lara. I am a talented architect and enthusiastic 3D designer & visualiser. I have more than 7 years of expe Lisää

$444 USD 16 päivässä
(3 arvostelua)

Hi I have 10 years experience in image processing with openCV and VTK., DirectX Looking forward your project. skype: talk2gunav Thanks Guna

$500 USD 15 päivässä
(1 arvostelu)

Dear Very interesting job for me. I have been worked for python cuda-convnet for 3 months this year which could be found in It is a image recognition system which implements convolution network and Lisää

$444 USD 15 päivässä
(1 arvostelu)

i will do it thanks...................................................................................................................................

$100 USD 3 päivässä
(1 arvostelu)

A proposal has not yet been provided

$27777 USD 100 päivässä
(0 arvostelua)

A proposal has not yet been provided

$333 USD 3 päivässä
(0 arvostelua)