Grzegorz Pytel Software developer, Mathematician

About Me

I’m a CAD/CAM software developer with about 80000 hours of practice.

My life has been connected with mathematical descriptions of surfaces in all stages of my career. I started my career at world leader in sheet metal simulation Autoform Switzerland. I was working there as a developer of stoning algorithm for Audi, Mercedes, Jaguar. After this initial period of internship I became a software developer freelancer

Between 2012 and 2016 I was working solely for a German CAM Software company Camtek, as a freelancer. During this time I learned and mastered my CNC skills: both from mechanical perspective and software development perspective.

As time passed by, I could start completing tasks as CNC machinist and production planning. I established a position of subcontractor in CNC milling: once with German Tox Pressotechnik and once with US Soldream.

I was an independent advisor/consultant to newly created CAM software as a plugin for CAD software for the Turkish company Optima Dekor. In 2018 I delivered a very important product to a Polish joint-stock company Unibep SA

My latest professional interest is compression of 3D data

I’m always looking for new, interesting colaborations and I’m sure that I’m the man you need to hire!

Contact Me

My Services

Software development

I develop software for you in the areas where the software fails to work, or simply does not exist at all

Consulting in engineering

I consult engineering at the intersection of CNC machining and computer technologies

Teaching and education

I can organise a teaching session for you in the areas I have deepest expertise. I can make educational tools

Skills & Abilities

Qt Widgets & Qt QML

Language Skills

English Advanced level
Spanish Basic level

Hobbies & Interests

History of ancient Egypt

How do I work?

Attitude to intellectual property

I am a mathematician and software developer. I dreamed about this job and have been fighting to keep my independent status and stay on market. I cannot imagine any other profession for myself. I am in love with CAD/CAM, computers, programming and mathematics. My sole purpose is to stay as I am. I am not interested in your customers, your market situation, your financial position, your development plans for future. Approaching me will not raise questions neither about ownership nor any other intellectual property. I am interested in solving problems and becoming better professionalist, and not really in what kind of business situation you have or would like to have.

I am delivering software for you. I do not want to keep intellectual property on my side and always keep your interest protected.

Do I really work alone?

Yes. I have a network of people whom I may ask for additional materials like icons/images but the software development is made only by me personally. The tasks I am completing are non-standard. If there were software tools for all those kind of tasks I have been doing, I would not have this job. New, non-standard tasks are quite often very difficult. It is easier for one person to get educated into problem then a team of people

Do I plan to be bigger?

No. CAD/CAM is never alone. There are special requirements for civil engineering, GIS, automotive, shipbuilding etc. Being active in many sectors is always more difficult then one. My tasks have been covering different segments of CAD/CAM software coverage. I am open for the future awaiting any kind of new task it can come. Wide range of requirements, with many people on board would make those kind of services, covering many areas extremely difficult to manage, and also with high risk of burn out and demotivation to people. Staying a freelancer, and working single definitely will make a transition to your area of activity simpler

I was awarded a teacher status on probalby world's math famous forum By helping other people in short mathematical questions I would love to keep my brain fit, so that I am able to make a rapid intellectual transition to new task description. For me the development path is to train the brain in real world scenarios. Helping other people on mathematical forum is the best way in my opinion.

Is it reasonable to start cooperation with just only one single freelancer?

Skilled people are scarce resources. You have to find out whether you need a team of people. Freelancer is perfect fit-in in really niche situation. The newest software tools are presented in scientific papers. One clever freelancer is enough to deliver new quality to your company. He will simply sit down, learn scientific paper and code it.

There have been many publications about 3D mesh compression published between 2012 and 2018. Have you heard that Siemens NX can offer you a compression of STL files? No! As for now, it simply does not exist in NX. Small software compressing CAD files could save you GB's on the storage.

If freelancer loves what he does, he will not leave you without the solution. We simply get hired because we deliver solutions to problems we love. A regular employee quite often gets hired but does not love his job and therefore is not innovative.

What is paid and when is paid?

You are not paying money in advance unless some special investment (like a machine or special computer hardware) is required. You pay only upon release of software. Bigger and longer projects are going to be divded into milestones. We schedule timeline together before I start working. You pay upon completion of milestone

The trips to particular geographical location are reimbursed. In case you want me to visit yur machine or to meet the engineer from your company, and I have to move out from my city, you have to take over the cost. Together with a reimbursement a previously negotiated daily rate is going to paid. I am going to my invest time, a small compensation is required.

If you have project which is complicated from engineering perspective and you would like to find out how I am going to solve your problem before we start cooperation, be ready to comprehend that this should be paid activity. People love to know anwsers on their questions and mix what they like from offers of different people. Learning is putting energy (effort). There is no free energy on this world. There is no offer from a freelancer without knowledge.

What are my facilities?

From software perspective I have always up-to-date license of VMWare Workstation. This allows me to test the software I am developing against different conditions like: amount of available RAM, behavious on HDD space shortage, unexpected electrical shortage, different networking scenarios and different operating systems as well. This is one of the most important software tools to prepare a well working release which is going to be sold to tens or hundreds of your customers.

Additionally I have valid licenses for all types of Windows OS and license for Visual Studio Ultimate 2012, 2013, 2015, with included native C++ memory profiler and all other stuff Ultimate versions offer. Whatever environment you would like to go, I will deploy.

From hardware perspective I am used to work on ATI graphics card. Yes, I am not CUDA developer and do not want to be so far. Choosing ATI pushes me into OpenCL direction, what in fact is even more interesting then CUDA. You may run OpenCL on your Android phone or embedded device like ARM Mali. This, together with custom designed, low energy software may open new possibilities for you

ATI, currently AMD, has decided to be more strict in implementing OpenGL standard. NVidia cards are probably better for end customers of old CAD/CAM software. The NVIDA card will still display GL diplay list, as NVIDIA is more backward compatible.

I am coding only 100% standard compliant code, and only using newest technologies. For the developer the best is to work with the strict standards like ATI (AMD) provides. This approach guarantees that you will see your result on all monitors, even those running Intel HD graphics/Intel Iris or embedded into processor AMD Vega. ATI defines different perspective for future then NVIDA. NVIDIA is more oriented into providing amazing and fast complicated scene rendering. ATI is more oriented on computations what is better from CAD/CAM perspective.

Download standard contract text [Polish]

Projects on Timeline

09.2018 - 11.2018

Reverse engineering of Giben's CNC panel saw

Unibep purchased a CNC panel saw from Giben. Neither official Polish Giben's distributor nor Giben was able to deliver software to the needs of civil engineering. Unibep in dispair went to court as they have not received what was in the offer. Some time later they met me. I sucessfully completed reverse engineering of Giben's FDT file format. As a result I was able to provide control the machine in the way Unibep wanted and cut any possible shape. I backed up Unibep's investment and unlocked the engineering potential. My work allowed to uncover unknown specification and missing features which was important to back up future development plans for Unibep.
07.2018 - 09.2018

Teaching CNC post processors

I write a small book and other teaching materials (like cheat sheets) which was educational material for employees of the company. The purpose of the book was to teach how to write and create any a post processor for CNC machining. I consulted many different topics and anwsered countless questions regardins CAM software. As a result the manager was covered with knowledge required by the business. I gave very deep thoughts on CNC postprocessors, showed a few alternative ways on how to approach development modern CAM system. As a result, with some time after delivery of consulting services (all anwsers etc) he wrote me back he had been grateful for the information I delivered. He changed a few decisions which will his software make successfull in my opinion.
06.2018 - 06.2018

Contractor in CNC machining

Contract in toolpath calculation for CNC milling for a manufacturers of hydraulic presses
06.2017 - 09.2017

Laser CNC toolpath generation

  • Generation of fast toolpaths for 2D cutting Amada's machines
  • Development of different 2D cutting strategies
  • Requirement on high numerical accuracy
  • Component attached to very big legacy code solution

Contractor in CNC machining

  • Design of CNC paths for mechanical part
  • Checking consistency and correctness of CAD model
  • Working in inches (US company)

Mechanical design of chassis for a mineral oil cooled computer Startup, private investor

  • Responsible for a design of chassis for gaming computer where all electronics parts are immersed into special liquid (mineral oil). Mineral oil provides passive cooling. Passive cooling is driven by the approptiate geometrical shape, which was my responsibility.
  • Designed components which are used to create computer chassis assembly
  • Responsible for choosing materials and manufacturing

Stock manager

Software to ease NC programming with multiple paths. Software is taking resulting BREP geometry file as output of material removal and providing this as stock material for next operation. As a result user can easier prepare NC code to manufacture exactly those pieces of material (left-overs) which still remained after milling with too big tool. Responsibility for user interface, efficient background computations of material removal, extension of CAM system

Cheating Parasolid. Contour lines

Contours for pocketing. Parasolid support curves or wires. It is easier for a user to work with kind of high level objects other then simple PK wires. We added also a possibility to generate a valid CNC path only where it makes sense. For instance red dashed line is a boundary of stock material. Milling inside stock material is really the only reasonable way to go.

Computation of CNC toolpaths for cylindrical surfaces


Parasolid optimisation

Die & Mould part with more than 10 000 Parasolid entities. Achieved 20x speed up in: faster file loading, NC generation and geometry processing by extending Parasolid with Range trees, better handling of Parasolid attributes and other tricks

Automatic measuring of distances to automate pocketing

On part like this one there could be necessary to measure different distances to different points in order to correctly define pocketing NC programming

Milling on Parasolid entities


Milling on STL

Developed a component/small software to an existing CAM software in order to perform CNC path computations on STL file. Task was heavily done with Parasolid geometrical kernel. As parasolid does not support BREPS, my task was to extend it. Reimplemented Parasolid picking algorithms to support BREP representations, saving and reading of non-Parasolid geometries, solved many problems like Parasolid entities attributes. Solved problems with file compatibilities

STL manipulation

A technician received a quick geometry positioning tool. He had to position a car inside a special acoustic measurment machine accordingly to his requirements coming from CAM software. The motion of the machine was programmed inside a CAM software. Special machine computer simulator was working with compiler developed for the needs of milling simulation. The purpose of modyfing a CNC simulation was not to guarantee the amount of rest material after CNC milling, but to guarantee correct movement of tool. This special machine was measuring levels of acoustics noises inside a wind tunnel and had specific constraints on movements. Special conditions were taken on the movement of the machine

Application of CNC simulator interpreter language in wood machining simulator on customer side

In this project user wanted to deliver a custom visualisation for CNC wood manufacturing. The standard CNC simlutor was adjusted to 5 axis maximum. The goeal was to simulate machine with 6 degrees of freedom. User could use the compiler/interpreter technology to simulate CNC moves like he has received them from CAM system and his post processor. The same moves were processed by post-processor, went to final machining stage and using intermediate computer language for CNC simulator, used in the simulator

Licensing of CNC milling strategies

Developed licensing module for CAM milling strategies. Strategies were grouped modules and information about modules was saved on USB dongles. User could use only those strategies with information stored at USB dongle
03.2014 - 12.2015

Quality assurance of third party libraries

Developed rootfinder for polynomials used in EDM to support different types of machine kinematics used inside EDM manufacturing technologies. Project had to translate moves from standard EDM format (x,y,u,v) = lower position + offset into 5Ax milling like machine coordinates with angles (x,y,z,a,c) = position + 2 angles. Basically it had to solve correctly inverse kinematics task for different types of machines.
06.2013 - 09.2013

Polynomial Rootfinder for EDM

Developed rootfinder for polynomials used in EDM to support different types of machine kinematics used inside EDM manufacturing technologies. Project had to translate moves from standard EDM format (x,y,u,v) = lower position + offset into 5Ax milling like machine coordinates with angles (x,y,z,a,c) = position + 2 angles. Basically it had to solve correctly inverse kinematics task for different types of machines.
05.2012 - 08.2013

CNC Simulation Software

Developed a component to connect CNC simulation software for milling technologies (3-5 Axis) with standard features like collision detection, visualization, CNC tools etc. Conversion of CL-Data in milling (3-5 axis) to another file format. From software perspective a compiler has been provided to provide valid CL-Data for NC simulation. Data are taken from CAD/CAM system, processed by compiler (interpreter) and as a result a control system for third party solutions is created. Communication protocol and API call was developed to coordinate CAD/CAM system together with simulation technology. Developed API and compiler for customers who need non-standard features in CNC simulators. Users can connect either their post processor directly to this compiling technology or create self-controlled simulation environment. Those non-standard features are used for instance in wood manufacturing technologies.
06.2011 - 12.2012

CAD Converter

Software performed automated conversion between different CAD files. Aim was to translate machine information between different BREP based file formats, inclusive mechanical information about joints and other mechanical properties. Software was required to provide
10.2011 - 03.2012

Digital stoning

Internship, 6 months long, during which I was working on digital stoning algorithm. Digital stoning algorithm was an algorithm which had to detect defects of car body while stamping.

Tiger Weed’s motivate course. How it was?

Sed tempor magna eget lacus egestas interdum. Fusce eu nisl semper, semper libero at, congue orci. Proin faucibus tortor vel semper auctor.

Read More

My Experience with Google Inc.

Sed tempor magna eget lacus egestas interdum. Fusce eu nisl semper, semper libero at, congue orci. Proin faucibus tortor vel semper auctor.

Read More

My Experience with Google Inc.

Sed tempor magna eget lacus egestas interdum. Fusce eu nisl semper, semper libero at, congue orci. Proin faucibus tortor vel semper auctor.

Read More

Some interesting books!

Sed tempor magna eget lacus egestas interdum. Fusce eu nisl semper, semper libero at, congue orci. Proin faucibus tortor vel semper auctor.

Read More

Contact me

Bank info

Full bank name: PKO Bank Polski
IBAN: PL58102034080000480204233771

Tax info

Full company name: Grzegorz Pytel usługi geometryczne
NIP: 727 263 04 11

Write to me

Social media