PyPile is a lateral pile analysis software program based on p-y curve method and finite element method. Pile deflection, bending moment and shear force can be analyzed with different load cases and multiple pile types.

PyPile has common pile cross sections and custom cross section. Typical soft clay, stiff clay, sand p-y curves (Barry J. Heyer and Lymon C. Reese), API sand, weak rock, c-phi soil, and custom p-y curve are included. Free pile head, fixed pile head, and arbitrary boundary conditions at any pile depth are implemented. Concentrated load, moment, distributed load can be applied at any depth along piles. Nonlinear pile bending stiffness was also integrated in the program.


  • Built-in p-y curves for typical soft clay, stiff clay, sand, API sand, weak rock, c-phi soil
  • Built-in elastic, elastic perfectly plastic, elastic perfectly plastic strain hardening, and brittle rock models
  • Custom p-y curves, defined by JavaScript or piecewise lines
  • Concentrated lateral load, moment, distributed load can be applied at any depth along piles.
  • Free and fixed pile head, and arbitrary boundary conditions at any location at piles
  • Reinforced concrete piles
  • General nonlinear pile bending stiffness
  • Nonuniform piles
  • Finned piles
  • Soil model illustration graphs
  • p-y curves along pile length
  • Multi-layered soil considered
  • P multiplier to reduce p value in p-y curves
  • Common pile cross sections and custom cross sections
  • Multiple piles analysis
  • SI units and English units
  • Pile EI Multiplier to increase or reduce pile bending stiffness
  • Axial load for p-delta analysis
  • Result graph export (svg, emf, pdf, png)
  • Results (deflection, moment, shear force, rotation angle) output as excel xlsx file
  • Soil profile graph ready to be exported and used in report

To Windows 7, 8 and 8.1 users: If PyPile cannot run, please

  • Keep your operation system updated
  • Download and install Microsoft Visual C++ 2019 redistributable package (x64) at
  • Delete msvcp140.dll and vcruntime140.dll and vcruntime140_1.dll from PyPile folder

Change log: (2022-07-08)

– fixed program crashing when concrete pile has zero strength (2022-01-12)

– fixed program crashing during xlsx file export with long sheet name

0.9.0 (2022-01-02)

+ round and rectangular reinforced concrete piles
+ finned piles
+ better JavaScript editor
+ user customizable general pile list
+ battered pile p multiplier hint
– fixed p-y spring illustration cannot display when program is started from different folders
– fixed convergence issue with small axial loads

0.8.6 (2021-01-23)

+ changed soil movement load from relative soil movement to absolute soil movement
+ added variable soil movements along depth
– minor GUI adjustment

0.8.5 (2020-07-09)

– fixed API sand error with small friction angle

0.8.4 (2020-04-19)

– fixed decimal point entry issue for countries using decimal comma
– fixed result data export titles in xlsx file

0.8.3 (2020-04-12)

– fixed program crash when more soil layers exist under pile bottom

0.8.2 (2020-03-31)

– fixed program crash when assign soil properties

0.8.1 (2020-03-30)

– fixed p-y curve output unit error

0.8.0 (2020-03-28)

+ nonuniform pipe pile
+ multi-section pile
+ pile section defined with function
+ arbitrary loads graphic presentation
+ p-y JavaScript test dialog
+ model graph view settings

0.7.0 (2020-01-19)

+ switched the numerical method from FDM to FEM
+ weak rock model
+ c-phi soil model
+ soil movement load
+ soil movement force dialog
+ arbitrary loads at arbitrary locations
…. concentrated forces and moments
…. distributed lateral loads
…. soil movement loads
+ arbitrary boundary conditions at arbitrary locations
…. lateral ground springs
…. rotational springs
…. lateral movement fixed
…. rotation fixed
+ nonlinear pile bending stiffness
…. elastic perfectly plastic
…. user defined curve
…. user defined JavaScript function
+ support windows 64 bit
– no windows 32 bit

0.6.3 (2019-02-04)

– corrected illustration typo
– removed emf file support

0.6.2 (2018-05-13)

– fixed p-y curve output depth
– fixed minor menu typo

0.6.1 (2018-01-03)

– minor bug fix

0.6.0 (2017-11-02)

+ API Sand
+ foundation stiffness matrix
+ showing p-y curves along pile depth
+ soil resistance data and curves
+ soil model illustration graphs
+ improved graph quality
+ display soil model options in combo box
– changed E to E/b for soil models added in 0.5.0
– fixed PyFunction declaration
– other minor fixes

0.5.0 (2017-07-03)

+ elastic soil model
+ elastic perfectly plastic soil model
+ elastic perfectly plastic strain hardening soil model
+ brittle rock model
+ Chinese graphical user interface
– bug fixes

0.4.1 (2017-04-18)

– fixed program crashing when result graphs showing

0.4.0 (2017-03-28)

+ axial loads
+ result graph export (svg, emf, pdf, png)
+ English units
+ result graph print
+ copy and paste data between loads table and spread sheet
+ delete load by delete key
+ more HP piles
+ copy pile type

0.3.1 (2017-02-18)

+ effective unit weight symbol
– fixed incorrect HP pile width

0.3.0 (2017-02-01)

+ multiple piles
+ HP piles
+ text output
+ updated excel file export
+ updated A and B curves
+ copy layer top parameter to layer bottom
+ loads generation and deletion
– moved N from stiff clay w/o water soil to loading
– groundwater level, use effective unit weight
– bug fix

0.2.2 (2016-03-24)

– bug fix

0.2.1 (2016-03-07)

+ multi-layered soil
+ P multiplier
+ lateral load and moment combination
+ rotation angle output
– used fixed J = 0.5
– bug fix

0.2.0 (2015-11-10)

+ multilayered soil
+ P multiplier
+ lateral load and moment conbination
+ pile rotation output

0.1.2 (2015-09-29)

155 Replies to “PyPile”

  1. First of all, thank you so much for such a great software!!
    I have been using it for a while and since day 1 I have noticed that the depth intervals in the legend of the P-Y curves is never and integer number, for instance instead of 1m, 2m, 3m, 4m … the legend shows 0m, 0.945m, 2.025m, 2.97m, 4.05m… Is there any way to fix this?

        1. Please change the number of Elements from 100 to 135: Analysis -> Settings -> Number of Elements
          The reason you have the decimal points is that the 13.5 m pile is divided into 100 segment for calculation and the depths of the p-y curves shown on the graph are the closest points to the 1 m interval you specified.

  2. Hi!
    There is one zero too much in picture that describes Reese soil model . It should be 6800 instead of 68000

  3. Hi Yong, in the Analysis>p-y Curves dialog, the depth is measured from the top of the pile instead of from ground level. Everywhere else seems to use the ground level as zero-depth.

    Also, there’s a minor spelling error in the Export menu: Export Reult Graph instead of Result .

  4. How is the k value calculated for analysis? The geotech report provided modulus of subgrade reaction as 10000/B kN/m^3, where B is the pile dia. If pile dia is 500, k value would be 10000/0.5 =20000kn?m^3?

    1. Based on the definition of k for stiff clay model and sand model, k should be a characteristic parameter of the soil and independent of the pile width B. Or you can take a look the elastic model in which k should be the definition of E/b.

  5. Hi Yong,
    I’ve just started using PYpile today. It looks very good and easy to use.

    Is it possible to get graphs (and tables including Excel export) for the force the soil applies to the pile? I can only see the ‘structural’ results of deflection, shear force and bending moment, which were displayed by default.

    Thanks, Stephen

      1. Hi again Yong,
        I meant the actual soil pressure. I can calculate it in a spreadsheet as:

        (Shear.2 – Shear.1)/[(Depth.2 – Depth.1)*Pile.Width]

        but can’t display it directly in the software. The software just displays the results for the pile structural design as far as I can tell.

        1. Stephen, I emailed you a soil resistance graph. Please let me know if this is what you are looking for.

  6. I’ve downloaded the mac software for pypile, but when i try to run it, pypile “quits unexpectedly”. I have dowloaded visual C++ but the same thing happens. If there anyway to get it working?

    1. Can you let me know which version of your operation system is? What is the information message by clicking the report button?

  7. Ye, thank you for a fantastic piece of software. You’ve done a fantastic job to put it together. I use it to sanity-check column designs for subsea manifolds and also jetties, and for some preliminary designs.

  8. Thanks for the software! It is sensational!! It seems you use Reese model for saturated sandy layers and Matlock model for saturated soft clayey layers . I believe the former is described in the paper “ANALYSIS OF SINGLE PILES UNDER LATERAL LOADING” by Reese (1979) available for downloading from your website. However I cannot find the latter. What is the title of the paper by Matlock?
    Cheers! and keep up the good work!

  9. hi,
    I have just started working with pypile and it collapses every five minutes…
    Can you help me figure out why?


    1. Hi Dvir, Can you please send me a screen copy of the error and also send me the file you were working with? What version of your operation system?

  10. Hi, there is an error when I tried to run the program, it says “This application failed to restart because it could not find or load the Qt platform plugin “windows” in””.

    I am using Windows 10. Thanks and more powers!

  11. When trying to run the latest version, it says:
    The program can’t start because api-ms-win-core-rtlsupport-l1-2-0.dll is missing from you computer. Try reinstalling the program to fix this problem.

  12. I recently tried PyPile and I found it’s use to be very straight forward and efficient. This is a very nice analysis program for piles. One thing is that on the list of soil models the names just appear as plain text and not until you double click on the name do you see that’s is a drop down list box to select the different soil models. If the drop down arrow would appear all the time, I think this would help people realize this is a list box to be selected from and not just displaying text. Is there any plan to add nonlinear behavior of reinforced concrete sections?

    1. Thanks Greg. You are right, only plain text of model name shows in default. I will try to implement your thought in the next release.
      The nonlinear reinforced concrete sections will probably be implemented in 0.7.

  13. Hi Yong, I have Windows 10 and cannot start pypile. I have tried installing C++ 2015 redistribute, Windows 10 SDK and removing the .dll files you have mentioned above. Do you have any other ideas on how to get it working on W10?

    1. Rohan, what error message did you get?
      Make sure VC++ Redistributable 2015 is 32 bit.
      Windows 10 SDK is pre-installed in Windows 10.

      1. Hi Yong, Sorry for the late reply.

        Each time I try and load the program it just come up and says “Lateral pile analysis program has stopped working” then asks to debug or close program. Debug gives the below error – i have screen shot for ease of use.

        I have recently reinstalled VC++ 2015 x86 to no success.



        1. Hi Rohan, Please try the following steps:
          1. Keep your operation system updated.
          2. Download and install Microsoft Visual C++ 2015 redistributable package (x86) (ignore this step if you have VC++2015 installed).
          3. Delete msvcp140.dll and vcruntime140.dll from PyPile folder.

          1. Hi Yong,

            I have tried the three steps you have mentioned without much luck. I tried installing on another W10 computer and it works perfectly, so it looks like mine is the issue. I’m not sure where to start to get it working. I have Visual Studio 2010 installed, could that be interfering?

          2. Not so sure what the problem is. Possibly the program was linking to Visual Studio 2010 dlls somehow. If you have VS 2015 installed, you can try uninstall VS 2010 and see what happens.

  14. Hi Yong, Great Software!

    If I am planning to add a restoring moment at the pile head, what could I do with the software? I only see options of free head and fixed head, and the applied moment cannot be “minus”. Thanks

    1. Thanks Sophie. You can add minus values for pile head loads. For example, you can enter -100 kN.m for moment.

      1. Thank you for your reply!

        I cannot type minus sign at the moment section. Here is what I am doing: double click the load part – free head – at the load generator try to input “-100”, but I cannot type “-” in the box.

        1. You should be able to directly input the negative loads in the load table on the left side of the dialog.
          I will fix the loads generator part. The loads generator just helps you create a list of loads.

  15. I just download the pypile v.0.3.1 it’s a cool and good software btw. But I can’t set the ground water level at this version. I already check the tutor of v.0.1 and there’s a different with the newest version, that the ground water section is missing. Did I miss something? Let me know if you answered this one

  16. This is what I see on my computer.

    Process: PyPile [1183]
    Path: /Volumes/VOLUME/
    Identifier: com.YongTechnology.PyPile
    Version: ???
    Code Type: X86-64 (Native)
    Parent Process: ??? [1]
    Responsible: PyPile [1183]
    User ID: 501

    Date/Time: 2017-03-23 17:57:36.628 -0500
    OS Version: Mac OS X 10.11.6 (15G1212)
    Report Version: 11


    Crashed Thread: 0

    Exception Type: EXC_BREAKPOINT (SIGTRAP)
    Exception Codes: 0x0000000000000002, 0x0000000000000000
    Exception Note: EXC_CORPSE_NOTIFY

    Application Specific Information:
    dyld: launch, loading dependent libraries

    Dyld Error Message:
    Library not loaded: @rpath/QtOpenGL.framework/Versions/5/QtOpenGL
    Referenced from: /Volumes/PyPile/
    Reason: image not found

    Binary Images:
    0x7fff6bd34000 – 0x7fff6bd6ba47 dyld (360.22) /usr/lib/dyld

    1. I fixed this error and updated the fixed version online. PyPile 0.4.0 with English units and result graph export will be available in a few days.

  17. Thanks for your response. I have another mac machine which has El Captain on it. The program gives me the same massage as it gives me on Sierra. Any advise is appreciated

  18. I have a Mac OS Sierra installed on my mac. The program does not work. I get the following message when I try to run the program.Please advice.

    Check with the developer to make sure PyPile works with this version of macOS. You may need to reinstall the application. Be sure to install any available updates for the application and macOS.

    Click Report to see more detailed information and send a report to Apple.

    1. AP, the current PyPile Mac verion is compiled on El Captain. PyPile 0.4.0 compiled on Sierra will be released in a few days.
      Let’s see if this problem can be solved with PyPile 0.4.0.

  19. Hi Yong, great Software! Congratulations.
    Do you have the intention to implement rotation of the pile head due to load/moment and cross coupling information. So that as a result one could have a foundation Matrix
    Best regards!

  20. what i just found:
    1) it is not possible to add decimal units for soil properties and pile length/stick-up e.g. soil density 18.5 kN/m3, pie stick-up 1.5 m and so on;
    2) i think that the width values for HP sections are swapped by their height values. See:
    E.g. section HP 360×174 on strongest axis (which in PyPile is X-X) has I=508e+6 mm2 and it’s respective width is 378 mm, not 361 mm.

    About the reporting, for me it would be enough if PyPile could report in doc, rff or in similar format because i usually put everything with my comments in MS Word where i have my specific headers/ footers and so on

    1. 1. Users should be able to enter decimal point. Which version of windows do you use? Make sure you enter a ASCII dot, not a Unicode dot.

      2. It is fixed in version 0.3.1. Thanks.

      1. I am able to put a decimal point only in the load definition window and for soil layer thickness. When i am pressing dot symbol on my keyboard in any other window it is not showing up.
        I am using Win 7 Ultimate x64 with Latvian regional settings.
        I am not sure whether i understand the difference between the ASCII dot and Unicode dot. I tried to copy the dot symbol from, but it didn’t work out.
        The new compilation 0.31 is not opening because of few missing dll’s which i believe is because that i have no Windows 10 SDK installed. The reinstall of Visual C++ Redistributable is not helping as it did previously.

        For the future versions, can you make the custom pilelibrary xlsx file not to disappear after updating the software?

        1. 1. Can you try installing Windows 10 SDK and then test the decimal point problem? Please let me know the results. I will try my best to find a Windows 7 to test it.
          2. Currently the best way is to save a copy of your modified pilelibrary excel file and then overwrite the file in the new release. I will check if there is a better way to do it from my side.

          1. I installed the Windows 10 SDK, but it didn’t work out. I tried to install Windows 7 SDK as well, but i still had the same errors. I tried to place the missing files (api-ms-win-core-memory-l1-1-2.dll, api-ms-win-core-rtlsupport-l1-2-0.dll) in PyPile folder, but still nothing.

          2. Please delete msvcp140.dll, vcruntime140.dll, and vccorlib140.dll from the PyPile folder. It should work now with Visual C++ Redistributable for Visual Studio 2015 (32 bit) on systems earlier than Windows 10.

          3. Deleting of those files and installing 32 bit VC++ Redistributable made it work! Thanks!

  21. I just found the software and i wanted to try it, but it did not start. A error appeared “The program can’t start because api-ms-win-crt-runtime-l1-1-0.dll is missing from your computer”. When i downloaded the dll file and placed it in PyPile folder i came up with new error “The application was unable to start correctly (0xc000007b)”

      1. Thanks! Now it’s working! By the way – nice software!
        Will there be in the upcoming versions automated reporting or at least a function to export result graph not just the values?

        1. Graph exporting is in my to-do list. I am trying to find a way to make the exporting flexible, because different companies normally have their own formats for reporting. Any suggestions please let me know. Thanks.

  22. why the export excel has only one point when I apply several loads and only three graphs varies with depth no graphs varies with loads

    1. Hello Paul,

      Based on your email, I understood that your lateral load location was above ground surface. What you need to do is to enter a positive value for the pile stick-up in the pile setting dialog.

  23. I am wondering if the parameter for sands should be units of kN/m^3 instead of MN/m^3. I seem to be getting results wildly different to comparisons calcs using different methods.

Leave a Reply to adidasmayo Cancel reply

Your email address will not be published.