discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

SanPyCAD

SP
Sanjeev Prabhakar
Sun, Jul 26, 2026 6:44 AM

I have developed a 3D modeling software based on python and openSCAD.
Github: https://github.com/sprabhakar2006/SanPyCAD

A video to explain the installation process :
https://youtu.be/6gmXwhTQcXE

Maybe of some interest to few here

I have developed a 3D modeling software based on python and openSCAD. Github: https://github.com/sprabhakar2006/SanPyCAD A video to explain the installation process : https://youtu.be/6gmXwhTQcXE Maybe of some interest to few here
NS
Nathan Sokalski
Sun, Jul 26, 2026 7:49 PM

Could you give a summary of the differences/advantages in comparison to OpenSCAD? I love OpenSCAD, but just like every other piece of software that has ever existed, there will always be things that can be improved. The fact that it is based on OpenSCAD definitely gives me hope (since I will hopefully not need to learn a huge amount of new syntax & I can use my existing work), so I would like to know what expect if I do try it.

Nathan Sokalski
njsokalski@hotmail.commailto:njsokalski@hotmail.com


From: Sanjeev Prabhakar via Discuss discuss@lists.openscad.org
Sent: Sunday, July 26, 2026 2:44 AM
To: OpenSCAD general discussion discuss@lists.openscad.org
Cc: Sanjeev Prabhakar sprabhakar2006@gmail.com
Subject: [OpenSCAD] SanPyCAD

I have developed a 3D modeling software based on python and openSCAD.
Github: https://github.com/sprabhakar2006/SanPyCAD

A video to explain the installation process :
https://youtu.be/6gmXwhTQcXE

Maybe of some interest to few here

Could you give a summary of the differences/advantages in comparison to OpenSCAD? I love OpenSCAD, but just like every other piece of software that has ever existed, there will always be things that can be improved. The fact that it is based on OpenSCAD definitely gives me hope (since I will hopefully not need to learn a huge amount of new syntax & I can use my existing work), so I would like to know what expect if I do try it. Nathan Sokalski njsokalski@hotmail.com<mailto:njsokalski@hotmail.com> ________________________________ From: Sanjeev Prabhakar via Discuss <discuss@lists.openscad.org> Sent: Sunday, July 26, 2026 2:44 AM To: OpenSCAD general discussion <discuss@lists.openscad.org> Cc: Sanjeev Prabhakar <sprabhakar2006@gmail.com> Subject: [OpenSCAD] SanPyCAD I have developed a 3D modeling software based on python and openSCAD. Github: https://github.com/sprabhakar2006/SanPyCAD A video to explain the installation process : https://youtu.be/6gmXwhTQcXE Maybe of some interest to few here
SP
Sanjeev Prabhakar
Mon, Jul 27, 2026 12:36 AM

Operations like difference, intersection, union, manifold are taken from
openSCAD.
All the calculations of vertices and faces are done in python.
So, this is completely based on points in space based geometry and not
opeSCAD primitives.
This gives a lot of flexibility in creating shapes.
A lot of things that are extremely difficult in pure openSCAD are possible
in SanPyCAD like fillets and complex geometries.
You need to see the 100 examples inside the software to understand the
difference.
There is a learning curve though, which is supported by "Reference" which
lists all the functions available along with their definition and examples
which cover the basics of sketching to very advanced examples.
Thanks

On Mon, 27 Jul 2026 at 01:19, Nathan Sokalski via Discuss <
discuss@lists.openscad.org> wrote:

Could you give a summary of the differences/advantages in comparison to
OpenSCAD? I love OpenSCAD, but just like every other piece of software that
has ever existed, there will always be things that can be improved. The
fact that it is based on OpenSCAD definitely gives me hope (since I will
hopefully not need to learn a huge amount of new syntax & I can use my
existing work), so I would like to know what expect if I do try it.

Nathan Sokalski
njsokalski@hotmail.com

From: Sanjeev Prabhakar via Discuss discuss@lists.openscad.org
Sent: Sunday, July 26, 2026 2:44 AM
To: OpenSCAD general discussion discuss@lists.openscad.org
Cc: Sanjeev Prabhakar sprabhakar2006@gmail.com
Subject: [OpenSCAD] SanPyCAD

I have developed a 3D modeling software based on python and openSCAD.
Github: https://github.com/sprabhakar2006/SanPyCAD

A video to explain the installation process :
https://youtu.be/6gmXwhTQcXE

Maybe of some interest to few here


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Operations like difference, intersection, union, manifold are taken from openSCAD. All the calculations of vertices and faces are done in python. So, this is completely based on points in space based geometry and not opeSCAD primitives. This gives a lot of flexibility in creating shapes. A lot of things that are extremely difficult in pure openSCAD are possible in SanPyCAD like fillets and complex geometries. You need to see the 100 examples inside the software to understand the difference. There is a learning curve though, which is supported by "Reference" which lists all the functions available along with their definition and examples which cover the basics of sketching to very advanced examples. Thanks On Mon, 27 Jul 2026 at 01:19, Nathan Sokalski via Discuss < discuss@lists.openscad.org> wrote: > Could you give a summary of the differences/advantages in comparison to > OpenSCAD? I love OpenSCAD, but just like every other piece of software that > has ever existed, there will always be things that can be improved. The > fact that it is based on OpenSCAD definitely gives me hope (since I will > hopefully not need to learn a huge amount of new syntax & I can use my > existing work), so I would like to know what expect if I do try it. > > Nathan Sokalski > njsokalski@hotmail.com > ------------------------------ > *From:* Sanjeev Prabhakar via Discuss <discuss@lists.openscad.org> > *Sent:* Sunday, July 26, 2026 2:44 AM > *To:* OpenSCAD general discussion <discuss@lists.openscad.org> > *Cc:* Sanjeev Prabhakar <sprabhakar2006@gmail.com> > *Subject:* [OpenSCAD] SanPyCAD > > I have developed a 3D modeling software based on python and openSCAD. > Github: https://github.com/sprabhakar2006/SanPyCAD > > A video to explain the installation process : > https://youtu.be/6gmXwhTQcXE > > Maybe of some interest to few here > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
SP
Sanjeev Prabhakar
Mon, Jul 27, 2026 12:40 AM

Macos installation has some extra steps.
Refer this video for explanation:
https://youtu.be/aS2mpCPhpsg?si=p5uGxZdsoLKprmIX

On Sun, 26 Jul 2026 at 12:14, Sanjeev Prabhakar sprabhakar2006@gmail.com
wrote:

I have developed a 3D modeling software based on python and openSCAD.
Github: https://github.com/sprabhakar2006/SanPyCAD

A video to explain the installation process :
https://youtu.be/6gmXwhTQcXE

Maybe of some interest to few here

Macos installation has some extra steps. Refer this video for explanation: https://youtu.be/aS2mpCPhpsg?si=p5uGxZdsoLKprmIX On Sun, 26 Jul 2026 at 12:14, Sanjeev Prabhakar <sprabhakar2006@gmail.com> wrote: > I have developed a 3D modeling software based on python and openSCAD. > Github: https://github.com/sprabhakar2006/SanPyCAD > > A video to explain the installation process : > https://youtu.be/6gmXwhTQcXE > > Maybe of some interest to few here > > >
JB
Jon Bondy
Mon, Jul 27, 2026 12:47 AM

I am confused by "Operations like difference, intersection, union,
manifold are taken from openSCAD" vs "completely based on points in
space based geometry and not opeSCAD primitives".  These statements seem
to be contradictory.

On 7/26/2026 8:36 PM, Sanjeev Prabhakar via Discuss wrote:

Operations like difference, intersection, union, manifold are taken
from openSCAD.
All the calculations of vertices and faces are done in python.
So, this is completely based on points in space based geometry and not
opeSCAD primitives.
This gives a lot of flexibility in creating shapes.
A lot of things that are extremely difficult in pure openSCAD are
possible in SanPyCAD like fillets and complex geometries.
You need to see the 100 examples inside the software to understand the
difference.
There is a learning curve though, which is supported by "Reference"
which lists all the functions available along with their definition
and examples which cover the basics of sketching to very advanced
examples.
Thanks

On Mon, 27 Jul 2026 at 01:19, Nathan Sokalski via Discuss
discuss@lists.openscad.org wrote:

 Could you give a summary of the differences/advantages in
 comparison to OpenSCAD? I love OpenSCAD, but just like every other
 piece of software that has ever existed, there will always be
 things that can be improved. The fact that it is based on OpenSCAD
 definitely gives me hope (since I will hopefully not need to learn
 a huge amount of new syntax & I can use my existing work), so I
 would like to know what expect if I do try it.

 Nathan Sokalski
 njsokalski@hotmail.com
 ------------------------------------------------------------------------
 *From:* Sanjeev Prabhakar via Discuss <discuss@lists.openscad.org>
 *Sent:* Sunday, July 26, 2026 2:44 AM
 *To:* OpenSCAD general discussion <discuss@lists.openscad.org>
 *Cc:* Sanjeev Prabhakar <sprabhakar2006@gmail.com>
 *Subject:* [OpenSCAD] SanPyCAD
 I have developed a 3D modeling software based on python and openSCAD.
 Github: https://github.com/sprabhakar2006/SanPyCAD
 <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_sprabhakar2006_SanPyCAD&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=CFNWDKwQ0Be29Nz9wOEs3ATpJLpIvemWmP7PoLFz97sJMYJ6TSt3U--7UW8mNF6S&s=gE6cRjV3tyJuXgNJe-1gHTn2tQI5tY07a4EX3xYJ238&e=>

 A video to explain the installation process :
 https://youtu.be/6gmXwhTQcXE
 <https://urldefense.proofpoint.com/v2/url?u=https-3A__youtu.be_6gmXwhTQcXE&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=CFNWDKwQ0Be29Nz9wOEs3ATpJLpIvemWmP7PoLFz97sJMYJ6TSt3U--7UW8mNF6S&s=kVegP_g4jG156UXuMj-XJfaSOlCbBV3ZPfvE9_VVL0c&e=>

 Maybe of some interest to few here


 _______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email to discuss-leave@lists.openscad.org

OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

I am confused by "Operations like difference, intersection, union, manifold are taken from openSCAD" vs "completely based on points in space based geometry and not opeSCAD primitives".  These statements seem to be contradictory. On 7/26/2026 8:36 PM, Sanjeev Prabhakar via Discuss wrote: > Operations like difference, intersection, union, manifold are taken > from openSCAD. > All the calculations of vertices and faces are done in python. > So, this is completely based on points in space based geometry and not > opeSCAD primitives. > This gives a lot of flexibility in creating shapes. > A lot of things that are extremely difficult in pure openSCAD are > possible in SanPyCAD like fillets and complex geometries. > You need to see the 100 examples inside the software to understand the > difference. > There is a learning curve though, which is supported by "Reference" > which lists all the functions available along with their definition > and examples which cover the basics of sketching to very advanced > examples. > Thanks > > > On Mon, 27 Jul 2026 at 01:19, Nathan Sokalski via Discuss > <discuss@lists.openscad.org> wrote: > > Could you give a summary of the differences/advantages in > comparison to OpenSCAD? I love OpenSCAD, but just like every other > piece of software that has ever existed, there will always be > things that can be improved. The fact that it is based on OpenSCAD > definitely gives me hope (since I will hopefully not need to learn > a huge amount of new syntax & I can use my existing work), so I > would like to know what expect if I do try it. > > Nathan Sokalski > njsokalski@hotmail.com > ------------------------------------------------------------------------ > *From:* Sanjeev Prabhakar via Discuss <discuss@lists.openscad.org> > *Sent:* Sunday, July 26, 2026 2:44 AM > *To:* OpenSCAD general discussion <discuss@lists.openscad.org> > *Cc:* Sanjeev Prabhakar <sprabhakar2006@gmail.com> > *Subject:* [OpenSCAD] SanPyCAD > I have developed a 3D modeling software based on python and openSCAD. > Github: https://github.com/sprabhakar2006/SanPyCAD > <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_sprabhakar2006_SanPyCAD&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=CFNWDKwQ0Be29Nz9wOEs3ATpJLpIvemWmP7PoLFz97sJMYJ6TSt3U--7UW8mNF6S&s=gE6cRjV3tyJuXgNJe-1gHTn2tQI5tY07a4EX3xYJ238&e=> > > A video to explain the installation process : > https://youtu.be/6gmXwhTQcXE > <https://urldefense.proofpoint.com/v2/url?u=https-3A__youtu.be_6gmXwhTQcXE&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=CFNWDKwQ0Be29Nz9wOEs3ATpJLpIvemWmP7PoLFz97sJMYJ6TSt3U--7UW8mNF6S&s=kVegP_g4jG156UXuMj-XJfaSOlCbBV3ZPfvE9_VVL0c&e=> > > Maybe of some interest to few here > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org -- This email has been checked for viruses by AVG antivirus software. www.avg.com
LM
Leonard Martin Struttmann
Mon, Jul 27, 2026 1:12 AM

I am confused by "Operations like difference, intersection, union, manifold
are taken from openSCAD" vs "completely based on points in space based
geometry and not opeSCAD primitives".  These statements seem to be
contradictory.

As I understand it, from the example provided in the attached video,
operations such as difference(), intersection(), union(), are still done
using OpenSCAD.  However, the objects that you provide to those operations
are generally polygons generated from "points in space" by using Python.

Here's another example:

Surface

From the "Basics of Drawing and 3D Modeling" tutorial (Python mode,

SanPyCAD)

l2=cr2dt([[0,0],[10,0],[0,10],[-10,0]])
s1=linear_extrude(l2,10)
fo(f'''
color("blue") for(p={s1}) points(p,.5);
color("magenta")for(p={s1}) p_line3d(p,.2);

// pay attention to the swp_surf module here
// swp_surf shows the surface covered by the polylines and is very important
// to understand as intersections are calculated based on intersecting
surfaces

{swp_surf(s1)}

''')

The first two lines and the functions fo() and swp_surf() are Python
functions.

The fo() function creates a file that is sent to OpenSCAD where,
apparently, anything within a {} is replaced by the associated Python
variable contents or Python function calls.  Also, the functions points()
and p-line3d() are apparently defined within a provided OpenSCAD library.

To answer Nathan's concerns: No, it doesn;t look like you can leverage much
existing OpenSCAD code.  Yes, there will be new syntax to learn.  As
Sanjeev says, "There is a learning curve though,".

Len

I am confused by "Operations like difference, intersection, union, manifold are taken from openSCAD" vs "completely based on points in space based geometry and not opeSCAD primitives". These statements seem to be contradictory. As I understand it, from the example provided in the attached video, operations such as difference(), intersection(), union(), are still done using OpenSCAD. However, the objects that you provide to those operations are generally polygons generated from "points in space" by using Python. Here's another example: # Surface # From the "Basics of Drawing and 3D Modeling" tutorial (Python mode, SanPyCAD) l2=cr2dt([[0,0],[10,0],[0,10],[-10,0]]) s1=linear_extrude(l2,10) fo(f''' color("blue") for(p={s1}) points(p,.5); color("magenta")for(p={s1}) p_line3d(p,.2); // pay attention to the swp_surf module here // swp_surf shows the surface covered by the polylines and is very important // to understand as intersections are calculated based on intersecting surfaces {swp_surf(s1)} ''') The first two lines and the functions fo() and swp_surf() are Python functions. The fo() function creates a file that is sent to OpenSCAD where, apparently, anything within a {} is replaced by the associated Python variable contents or Python function calls. Also, the functions points() and p-line3d() are apparently defined within a provided OpenSCAD library. To answer Nathan's concerns: No, it doesn;t look like you can leverage much existing OpenSCAD code. Yes, there will be new syntax to learn. As Sanjeev says, "There is a learning curve though,". Len
SP
Sanjeev Prabhakar
Mon, Jul 27, 2026 1:20 AM

Thanks Len,
You explained it perfectly.
Regards

On Mon, 27 Jul 2026, 06:43 Leonard Martin Struttmann via Discuss, <
discuss@lists.openscad.org> wrote:

I am confused by "Operations like difference, intersection, union,
manifold are taken from openSCAD" vs "completely based on points in space
based geometry and not opeSCAD primitives".  These statements seem to be
contradictory.

As I understand it, from the example provided in the attached video,
operations such as difference(), intersection(), union(), are still done
using OpenSCAD.  However, the objects that you provide to those operations
are generally polygons generated from "points in space" by using Python.

Here's another example:

Surface

From the "Basics of Drawing and 3D Modeling" tutorial (Python mode,

SanPyCAD)

l2=cr2dt([[0,0],[10,0],[0,10],[-10,0]])
s1=linear_extrude(l2,10)
fo(f'''
color("blue") for(p={s1}) points(p,.5);
color("magenta")for(p={s1}) p_line3d(p,.2);

// pay attention to the swp_surf module here
// swp_surf shows the surface covered by the polylines and is very
important
// to understand as intersections are calculated based on intersecting
surfaces

{swp_surf(s1)}

''')

The first two lines and the functions fo() and swp_surf() are Python
functions.

The fo() function creates a file that is sent to OpenSCAD where,
apparently, anything within a {} is replaced by the associated Python
variable contents or Python function calls.  Also, the functions points()
and p-line3d() are apparently defined within a provided OpenSCAD library.

To answer Nathan's concerns: No, it doesn;t look like you can
leverage much existing OpenSCAD code.  Yes, there will be new syntax to
learn.  As Sanjeev says, "There is a learning curve though,".

Len


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Thanks Len, You explained it perfectly. Regards On Mon, 27 Jul 2026, 06:43 Leonard Martin Struttmann via Discuss, < discuss@lists.openscad.org> wrote: > I am confused by "Operations like difference, intersection, union, > manifold are taken from openSCAD" vs "completely based on points in space > based geometry and not opeSCAD primitives". These statements seem to be > contradictory. > > As I understand it, from the example provided in the attached video, > operations such as difference(), intersection(), union(), are still done > using OpenSCAD. However, the objects that you provide to those operations > are generally polygons generated from "points in space" by using Python. > > Here's another example: > > # Surface > # From the "Basics of Drawing and 3D Modeling" tutorial (Python mode, > SanPyCAD) > > l2=cr2dt([[0,0],[10,0],[0,10],[-10,0]]) > s1=linear_extrude(l2,10) > fo(f''' > color("blue") for(p={s1}) points(p,.5); > color("magenta")for(p={s1}) p_line3d(p,.2); > > // pay attention to the swp_surf module here > // swp_surf shows the surface covered by the polylines and is very > important > // to understand as intersections are calculated based on intersecting > surfaces > > {swp_surf(s1)} > > ''') > > The first two lines and the functions fo() and swp_surf() are Python > functions. > > The fo() function creates a file that is sent to OpenSCAD where, > apparently, anything within a {} is replaced by the associated Python > variable contents or Python function calls. Also, the functions points() > and p-line3d() are apparently defined within a provided OpenSCAD library. > > > To answer Nathan's concerns: No, it doesn;t look like you can > leverage much existing OpenSCAD code. Yes, there will be new syntax to > learn. As Sanjeev says, "There is a learning curve though,". > > Len > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org