Startup Lesson Learned 5: Understand the Need, Focus on the Solution

10_Tech_Startup_Lessons_Learned-1_thAbout the Series “10 Tech Startup Lessons Learned”
PADT is a company focused on helping companies bring their physical products to market. As “We Make Innovation Work” for our customers, we learn a lot about what does and does not work in technology startup companies. In addition, we were once a startup ourselves and we now participate in Angel investing.  All of this has taught us a lot of valuable lessons.
In this series we will share some of those lessons learned and explore the basic concepts and ideas that will help startups overcome the odds and become successful.This posting is the second installment for our series. The previous postings were:

We hope that you find it useful and we look forward to sharing our thoughts on this topic with you.

It has been some time since we have added to this series, mostly because we have been busy working with companies both large and small helping to make their innovation work.  Its good to be busy.  We have also become further involved with several new startups by providing services, mentoring, and angel investing.  All of those experiences reinforced an important lesson we have learned through the years: you must have an honest and deep understand of the need in the marketplace, and your focus must be on finding the best possible solution for that need.

Need: What it is, How Much, and How Many

A technology startup is created as a business that uses some sort of technology to solve some sort of need in the market.  The need may already be met by existing solutions, it may be unmet, or it may even be a need that no one knows they have.  So first, find a need.  That is where you start.  Define the “Why” for your technology.  Then make sure that those who want that need met are willing to pay more for meeting that need than it costs you to provide the solution – profit.

People want coffee.  They will pay around $4.35 for coffee. It costs you $0.50 to make and serve a cup– profit. Switch out coffee with any other need and the equation is the same.

It is also a good idea for the need to be one that is large enough that the risk of doing the startup is counterbalanced by the possible return.  The old higher risk requires higher potential rewards equation. Taking our food example a bit too far, there are people who want Donkey Milk Cheese. They will pay over $600/pound for it.  But if there are only a few hundred of them, you will have a hard time getting investors or employees to invest a lot of money or time in your endeavor. Good enough for a family farm that just needs to make a little bit of money, but not good enough for a technology startup – low or negative profit.

This stuff is startup fundamentals.  Identify the market from a business standpoint and really understand it as a market: how strong is the demand (impacts price) and how big is it.

Avoid Overdoing the Need Part

Most companies start by identifying a credible and real need, then they veer off the road and start obsessing about why that need is important.  Going on and on about how bad the current solutions are, how it is ignored by others, how others just do not understand it, or that is is the next “big thing.”  These things matter, but only in terms of how they contribute to how much people will pay for a solution and how many of them there are. 

It is not uncommon for us to listen to a pitch and have the CEO of a startup spend over half of their time talking about the need in the market.  Going on and on why the need is significant or important.  This should be a small part of a pitch, simply presented to gain some interest and establish the size and desire of the market.

Meet the Need: Develop a Complete Solution that Works and Makes Money

So the easy part is done. A need is identified and the potential financial return for meeting it is also quantified.  Now comes the hard part – finding the right solution. As a technology startup, that solution is most likely technology based.  It could the the application of existing technology or it could require the development of a new technology.  Either way your job as a startup is to turn that solution into a product or service that can be sold to the market.

This is where you focus should be. Even if you have not solved the technical problems, you should be planning out what resources and how much money you will need to solve them.  If you are looking for funding, investors are going to want to know less about the nuts and bolts of the technology and more about how much it costs to get the technology working, and how much it will cost to produce or maintain the technology you will be selling.

The need to come up with a working solution is so fundamental some may ask why this is even listed in a “Lessons Learned” list.  It is obvious.  But our experience is that a large number of startup companies take the solution on faith. It is not uncommon for us to be hired by a startup, especially in the clean-tech sector, who wants us to help them evaluate or improve their technology.  When we look at the technology we often find that it is not unique, not as good as they think it is, or simply does not work.  And this is after the company has funding, employees and interest from customers.

A complete solution also includes a manufacturing or distribution plan. For software, this has become somewhat trivial, but for hardware solutions it is often overlooked.  You need to know as early as possible if you can make your solution, how long it will take to make, and what it will cost to make it.

A Solution Looking for A Problem is a Bad Thing

When you talk about a market need and a solution, you always need to ask yourself if a startup has a solution, but is looking for a problem to solve.  With the rising trendiness of the whole “pivot” thing many people downplay this more than they should. If the market is wrong, pivot. That is an expensive and painful process. 

We often see brilliant technical solutions that have a significant “wow” factor associated with them. They are often well executed and examples of how to do technology right. But they do not have a market or a market has not been identified.  This often results from an unrealistic assessment of the need up front. If you develop a Donkey Milk Cheese that is truly a work of art, your business will fail because you now need to create a market for Donkey Milk Cheese as a cheese, or find a new problem that can be solved with Donkey Milk Cheese. Perhaps it is a good foot balm?

It’s a Business

People have problems with understanding their market and focusing on their solution when they forget that what they are doing is a business.  A tech startup is not a club, a social experiment, or a family adventure. It can look like all of those things, but it is a business. And not just any business. It has significant financial and technical challenges and the expectation for it is rapid and significant growth.

Without the identification and understanding of a clear market need, and a team that is focused on providing a technical solution that makes business sense, a startup will surely fail and may not even be able to attract funding.

Video Tips: Automatic Contact Generation in ANSYS Mechanical

A quick video showcasing the automatic contact generation feature in ANSYS Mechanical.  This feature automatically selects the faces that are in contact or are close to contact and assigns a contact definition.

Video Tips: Importing SolidWorks Geometry into ANSYS Mechanical

TheFocus-Video-Tips-2We are pleased to introduce a new feature in The Focus blog, video posts.  With this entry we are putting up our first “The Focus Video Tips, Examples, and Demonstrations”  Sometimes a video just works better, especially when showing how to do something in a Graphical User Interface.

So we have put some basic infrastructure in place and that lets us quickly record something on one of our computers, stick a title and end slide on it, and then upload to YouTube.

In this first entry, we show how easy it is to read in geometry from SolidWorks to ANSYS Mechanical.

PADT Celebrates with Private Star Trek Showing

Uhuru-PADTCustomers, friends, and families joined PADT’s employees for a private screening of “Star Trek: Into Darkness” last Friday afternoon. We had such a great turnout that the only seats open were in the front row.

Watching a movie like this with a group of technical people is a lot more fun than a general crowd.  Many of us are long time fans so we truly enjoyed sharing some of the inside jokes and tie-ins to Star Trek: TOS as well as the older movies.

2013-05-17 14.25.44

We want to thank everyone who was able to make it and we are already looking at upcoming films to find the right one to do this again with.  And yes, we will get a bigger theater next time.

CFX Expression Language–Part 5: Using CEL for Solution Monitoring

In four previous entries we introduced CFX Expression Language, CEL:

After a break to teach some ANSYS classes in beautiful northern Utah we’re back to conclude our series on CFX Expression Language.

image

In our fifth and final installment on CEL we will discuss the use of CEL in monitoring items of interest while the CFX solution is progressing. Back in the first installment in this series, we showed how to create expressions for results quantities in CFD Post. By creating expressions in similar fashion for results quantities in CFX Pre, we can use these expressions to monitor items during solution.

Here is an example. In CFX Pre we have defined three expressions which are really extracting and operating on results data.

forceX1 = resulting force on one face of the structure
forceX2 =resulting force on another face of the structure
fdiffx = the difference between these two values or the net force acting on the structure

This shows these three expressions in the CFX Pre outline tree:

image

Still within CFX Pre, click on Insert > Solver > Output Control. That will add an Output Control tab on the left side of the CFX Pre window. Click on the Monitor tab, expand Monitor Points and Expressions, and then click on the button near the right of the window below that to add a monitor point:

image

Set the Option to Expression and in the Expression Value box left click then right click to select from your list of defined expressions:

image

The CFX Pre tree will now have one or more Monitor Points listed under Output Control:

image

When we initiate the solution, these user-defined monitor points will be available for real time display in addition to the normal Momentum and Mass and Turbulent kinetic energy monitors. All we need to do is click on the User Points tab during solution to view our expressions as monitors. In the example shown below, Monitor 1 is forceX1, Monitor 2 is forceX2, and Monitor 3 is fdiffx, the difference between the first two quantities. These could have been renamed during their definition to make it easier to understand the monitor plot. Here is a snapshot of the quantities being monitored during the solution:

image

So, as we have seen in the last 5 CFX Expression Language blog entries, CEL exposes a lot of powerful capability to CFX users (and to Fluent users within CFD Post). In this case we have seen how to add additional items to monitor during the solution process. The advantages of this are to help us determine on the fly if the solution is progressing as expected and to give us an idea of the values of certain results quantities before the solution is fully completed.

We certainly hope you now have a better understanding for how CEL can be used to increase the capabilities and useful information available from CFX and CFD Post.

A Visit to the Solar Impulse Aircraft and Thoughts on Doing Big Things

2013-05-13 11.43.19Our recent visit to see the Solar Impulse aircraft while it visited Phoenix was a great opportunity for us to see some great engineering, share some thoughts on cleantech technology, and be reminded of the power of doing something big.

The Solar Impulse is a “movement challenging conventional thinking to inspire innovation, hope and action among citizens and policymakers.”

Innovation, hope and action about what?

How existing and future technologies can change the way we use energy around the world.

They are doing it by using existing technologies to build an airplane that operates entirely on power gathered from sunlight and that is capable of flying night and day over long distances.  They are currently flying across the US, and are building a second generation aircraft that should be able to fly around the world.

We got some great pictures of the event that you can view on our Facebook or Tumblr

2013-05-13 11.46.25

 

You can learn the technical specifics about the plane here, and about the trip across the US here.  It truly is an engineering marvel in how every inch of the aircraft is optimized to increase the glide ratio and decrease weight.  The entire power train, from sunlight hitting the wings to the turning of the propellers has a total efficiency of 12%, which is pretty impressive if you consider the fact that the solar cells are only 22% efficient.  The motors and the gearbox are, well, like a finely made Swiss machine.

Once we got over the technical aspects of the aircraft we started to listen to the pilot, Bertrand Piccard.  You may recognize his name (no he is not Capt. Picard’s great-great-great grandfather… as far as we no). He was one of the Aeoronauts who made the first non-stop around the world balloon flight.  He honestly and directly pointed out that there is no real practical application for this aircraft. It has the wingspan of a 747 and can only carry one person.  What he did do is talk about using this project as a demonstration, and a catalyst, to get people around the world to understand that today we can all make small changes that will have a major impact on how much energy we consume, and where it comes from.  From the solar cells to the motors to the high-efficiency LED landing lights, every inch of this plane underscores that message.

It also got me to thinking.  We are often too focused on only doing projects that produce a tangible benefit, that generate direct income or fix a problem directly. If you look at history and when we made giant leaps forward, those leaps were usually started by someone doing something that may not have had a direct and practical application. But it inspired, it pushed the technology forward, and in the end it almost always improved the lives of everyone in some way.

Everywhere this plane goes it attracts big crowds. It’s image on TV and the Internet is shared by millions.  It is changing the way people think about cleantech and showing that we have technology here now that can make a difference.  Will we ever travel in a solar powered commercial airplane? No, probably not. But will this effort inspire someone to develop a more efficient motor and better composite material for wing spars?  I am sure of it.

As we left the improvised hanger at Sky Harbor airport I felt that excitement I used to feel as a child, that challenge that pushed me to become an engineer in the first place. Solving difficult problems, using technology to make the world around us a better place, that is what it is all about. That is what makes what we do here at PADT so damn cool.

So here is to doing something big that inspires.  Thank you SolarImpulse. We all need to follow your lead and dream about making big changes, and make sure that inspiration is a part of what we do.

Y201304_23_AcrossAmerica_GoldenGateFlight_Revillard-80

 

 

PADT Interviewed on Local TV on 3D Printing

cbs5-vanThose of us that have been doing rapid prototyping for over 20 years are a bit taken aback by the sudden interest by the mainstream public in 3D printing, but in  good way. We have been amazed by this technology for decades and have been evangelizing about its uses even before we bought our first Stereolithography machine in 1994.

Two recent news stories have really brought the technology out into open where producers in news rooms are starting to take notice.  The first is the video of some guy who built a single shot gun on FDM machine. The second is the fact that Staples will start selling “hobby” 3D Printers in their stores.  So those same producers googled Phoenix and 3D Printing and they got PADT.  We were more than happy to help set the record straight on additive manufacturing, where it is, and where it is going. Here are stills of all of our soon to be discovered stars:

Eric-TheList-3DPrinting John-ABC-15-gunMario-CBS5-Head

The first interview was a nice one on Channel 12, but it never got put on the internet so you will just have to take our word for it, we were fabulous.

The next video was on the local ABC affiliate, channel 15 and we talked about 3D Printing and also made a copy of the reporters head:

The List: The Futurist: 3D Printing a beak, a break and something in vain

Next came another story on the same channel, really focused on the whole printed gun thing.  John here at PADT did a great job staying focusing on the technology and what it could do.  They even got a shot of our building sign, which made us very happy:

Channel 15 News: 3D Printed Gun Story

Up to that point everything was recorded and edited. Then the local CBS station, Channel 5 asked us to do a live segment where we scanned the news anchors head then talked about the technology while we built it.  It was a lot of fun and Mario was great. Here is the final segment from that show:

Part 1:

CBS 5 – KPHO

 

Part 2:

CBS 5 – KPHO

We look forward to doing more in the future. And maybe one day soon, the general public will get just as excited about numerical simulation, now there is some compelling TV.

 

G3Box Raising Funds to Send First Maternity Clinic to Kenya

20130408100433-g3box-FINAL_LOGO_adjustWe are very pleased to let our community know about some great progress that has been made by a startup here in Phoenix called G3Box.  What is G3Box?

“G3Box converts steel shipping containers into medical clinics. We passionately pursue healthcare concerns around the world with a commitment to integrity, humility, and collaboration. We Generate Global Good.”

They hit a major milestone this weekend when they raised enough money to ship their first526595_461714910568706_1510356826_n clinic to Kenya Africa.  But they are still raising more money to help them deliver an even better solution.

We at PADT really like this startup for a simple reason: they have developed an efficient, practical, and well engineered solution to a real world problem that has a positive impact on the world.  We also like the fact that the company came out of ASU and that one of the key players is a part time PADT employee, Susanna Young.

644721_470442089695988_384320935_n

Check it out for yourself: http://www.g3boxllc.com/

If you find their idea as compelling as we do, then maybe you can help fund them to get their real clinic into the hands of people who need it.

CFX Expression Language–Part 4: Applying Ramped and Stepped Boundary Conditions Using CEL

In three previous entries we introduced CFX Expression Language, CEL:

In this fourth installment we will demonstrate the use of CEL to apply ramped or stepped boundary conditions. In certain circumstances we might want to ramp a load rather than apply it all at once. For example, convergence difficulties can sometimes arise when a fast rotation rate is applied initially in rotating machinery simulations. Starting off with a smaller value of load and ramping it to the final value can aid in convergence in these circumstances.

Note that the rate of load application can be manually changed during the solution in the solver manager, but why not take advantage of CEL and do it automatically? As we will see, this is fairly easy to do.

The ability to ramp a load makes use of a built-in CEL variable labeled “aiturn”, which is the accumulated value of the iteration number. If we assign an expression for the number of iterations we want, we can then create a combined expression for the ramped load:

image

In the above list of expressions, Flow999 is our desired full amount of flow at the end of ramping. Iter is defined to have a value of 100. Both of those are names that we picked. We then defined expression flowapplied, which is the value of Flow999 times the built-in expression aitern (the current solver iteration number) divided by the total number of iterations desired for the ramping, Iter. Once aitern = 100, then the value of flowapplied will equal Flo999 or 9.99 ft/sec in this case.

Here is a plot of the expression flowapplied for values of aitern between 0 and 100. The plot is in m/s but the peak works out to be 9.99 ft/sec.

image

As we have seen in prior entries in this series, we plug in the expression name for the input in the appropriate field. In this case, the name of the expression flowapplied is entered in the Normal Speed field in the Inlet boundary details.

After solution, we can verify that at the end of the solution the applied inlet velocity had reached the full value of 9.99 ft/sec. in CFD Post:

image

The next step might be rerun the solution while maintaining a constant value of the applied load for an extended period of time. This can be accomplished by modifying the expression which defines the load so that it has some additional values:

image

In the above expression we have added a step() function, which can either be typed in or added by right clicking, Functions > CEL > step. This causes the ramped load to peak at the value of Flow999 when aitern reaches the previously defined value of Iter at 100, then drop to zero after that. This happens because if Iter-aitern is greater than one, step=1, but if Iter-aitern is less than one, step=0. Here is the resulting plot in CFX Pre:

image

That’s not quite what we want, but if we tweak the expression a bit more, we can get it to ramp to the full value then remain constant.

image

Now we have another term involving the step() function, but with the expression names inside the step function reversed. This means that once aitern exceeds the value of Iter, the first term becomes zero and the second term takes over with a constant value of the load equal to Flow999, as shown here:

image

By using similar expressions involving time, we can create a load history that turns off and on at desired time points.

Hopefully by now you’re starting to see the value of CEL. We are just scratching the surface here, but once you start using it you will find that CEL has a lot of potential powerful uses. In the next installment we’ll cover some additional capabilities available in CEL.

Spring 2013 PADT Company Meeting

2013-04-30 11.26.57 Twice a year, PADT employees gather from around the country in our main office in Tempe for a company meeting.  We get together in one room for about two hours to review the past 6 months, talk about what we have accomplished, what we are working on now, and where we want to be.

The spring meeting always starts with our annual company picture.  We all get a new shirt with a PADT logo proudly embroidered on the left breast, and we stand in the heat glaring into the sun, each of us wondering if it really has already been 12 months since we last did this.  The result came out pretty good:

PADT-Company-2013-04-30-1-500w

With just over 70 employees on the payroll, we were lucky to get 60 who could make it to the picture and the meeting. That may be a record.

CFX Expression Language–Part 3: Applying Boundary Conditions Using CEL

In two previous entries we introduced CFX Expression Language, CEL:

Part 1: Accessing CFD Simulation Information in CFX (and FLUENT)

Part 2: Augmenting Material Property Assignments in ANSYS CFX

In this third installment we will see how to use CEL to apply boundary conditions as equations rather than constant values. For example, if a non-constant velocity profile can be defined as an equation, we can use CEL to define as well as apply the profile.

Let’s look at an example in which the velocity profile is a function of y coordinate:

u(y) = 6 * Umax * y / H * (1 – y/H) (m/s)

Using the procedure we learned in part 1 of this series, in CFX Pre we have defined expressions for H and Umax. We then defined the equation for the velocity profile as Uprofile:

clip_image002

Next we go to the Plot tab within the Expressions editor to verify that our velocity profile matches expectations:

clip_image004

To use our new expression in CFX Pre, we just enter the expression name in the appropriate field when defining the inlet velocity:

clip_image006

Finally, this velocity plot from CFD Post shows that indeed our desired velocity profile was applied at the inlet.

clip_image008

Hopefully this demonstrates how easy it can be to use CFX Expressions to define non-constant boundary conditions. In the next part of the series, we will look at using expressions to ramp or step apply loads.

PADT’s Norman Stucker Nominated for The Brian R. Vogt Community Leader of the Year

Norman-Stucker-South-Denver-Metro-Chamber
South-Metro-Denver-Chamber-LogoWe are always humbled when a great organization takes the time to recognize PADT or one of our employees.  We are pleased to announce that our General Manager, and Salesguy, Norman Stucker was nominated for the South Metro Denver Chamber of Commerce Brian R. Vogt Community Leader of the Year.

Besides a reminder that this particular group has an even longer full name than PADT, we are pleased that the business community in the South Denver area has recognized the contribution that Norm makes to the community. We will definitely post

Learn more here.

2000 Core Milestone Passed for CUBE HVPC Systems

IMG_9548As we put the finishing touches on the latest 512 core CUBE HVPC cluster, PADT is happy to report that there are now 2,042 cores worth of High Value Performance Computing (HVPC) power out there in the form of PADT’s CUBE computer systems.  That is 2,042 Intel or AMD cores crunching away in workstations, compute servers, and mini-clusters chugging on CFD, Explicit Dynamics, and good old fashioned structural models – producing more accurate results in less time for less cost.

When PADT started selling CUBE HVPC systems it was for a very simple reason: our customers wanted to buy more compute horsepower but they could not afford it within their existing budgets. They saw the systems we were using and asked if we could build one for them.  We did. And now we have put together enough systems to get to 2,042 cores and over 9.5TB of RAM.

CUBE-HVPC-512-core-closeup3-1000h

Our Latest Cluster is Ready to Ship

We just finished testing ANSYS, FLUENT, and HFSS on our latest build, a 512 core AMD based cluster. IT is a nice system:

  • 512 2.5GHz AMD Opteron 6380 Processors: 16 cores per chip, 4 chips per node, 8 nodes
  • 2,048 GB RAM, 256GB per node, 8 nodes
  • 24 TB disk space – RAID0:  3TB per node, 8 nodes
  • 16 Port 40Gbps Infiniband Switch (so they can connect to their older cluster as well)
  • Linux

All for well under $180,000.

It was so pretty that we took some time to take some nice images of it (click to see the full size):

CUBE-HVPC-512-core-front1-1000h CUBE-HVPC-512-core-service1-1000h CUBE-HVPC-512-core-stairs-1000h

And it sounded so awesome, that we took this video so everyone can here it spooling up on an FLUENT benchmark:

If that made you smile, you are a simulation geek!

Next we are building two 64 core compute servers, for another repeat customer, with an Infiniband switch to hook up to their two existing CUBE systems. This will get them to a 256 core cluster.

We will let you know when we get to 5000 cores out there!

Are you ready to step out of the box, and step into a CUBE?  Contact us to get a quote for your next simulation workstation, compute server, or cluster.

CFX Expression Language – Part 2: Augmenting Material Property Assignments in ANSYS CFX

In a previous entry we introduced CFX Expression Language, CEL.  You can view that post here

Before we get started, there are some key things to remember:

  1. Expressions can be easily created by right-clicking in the Expressions tab after double clicking on Expressions in the CFX Pre object tree.
  2. Expressions and their contents are case sensitive.

In this next part of the series, we’ll show how to use CEL to augment your material property definitions in CFX. If material properties are constants then their input is straightforward. However, if the properties are defined as equations, we can use CEL to input those equations in CFX.

For example, if viscosity is defined as a function of shear strain rate, we need to define viscosity using an equation that captures that relationship, such as

m = K * gn-1

Below are shown two ways in which that equation can be captured using CFX Expression Language, visc1 and visc2. The second equation, visc2, is more flexible in that we have defined the constant terms as expressions themselves.

clip_image002

It’s always a good idea to verify the input. Most expressions can be easily plotted by clicking on the Plot tab in the Details view. Here is a plot of the viscosity vs. shear strain rates between 0 and 1, as calculated by expression visc2:

clip_image004

Similarly, the Evaluate tab can be used to evaluate the expression for desired values of the inputs.

So, we have defined an expression for a material property, viscosity in this case. How do we get CFX to use that expression? In the material property input, we click on the expression icon to the right of the particular material property we are defining, then enter the name of the expression, as shown here for expression visc2:

clip_image006

Summing it up, we can use CFX Expression Language to define material property equations for non-constant material values. In the next installment we will look at how to use CEL to define changing boundary conditions, such as a ramped load.

Lighted Speakers show Off Power of 3D Printing

3D-Printed-Speakers

We came across this very cool application that uses a Stratasys Connex 500 spreading like wildfire across the blog-sphere.  We thought we would put our own technical spin on it since we have that same system.  Evan Atherton from Autodesk did the model working with a company called LumiGeek to do the lighting.
Here is a  good video that explains the project:

As you can see, Evan built a very cool 3D model of the speakers then printed them on the Connex 500. That particular system uses an inkjet technology called polyjet to print out a photocurable resin (a plastic that hardens when you expose it to ultraviolet light) in layers. What is special about this application of the polyjet technology is that the machine can print two different materials at the same time. So you can mix those materials as you build a part to change properties. This allowed him to get a mixture of rubber-like and semi-transparent plastic parts to fit into his design.

Once printed they assembled the parts with a programmable LED strip from LumiGeek. And presto – they now have their own custom speakers that blink and shimmy in time with the music they are playing.

Endgadget has a pretty good slide show and a video that shows some of the details.

So What?

As most of the blogers/vlogers point out this is not a way to mass produce speakers.  The material and labor costs are extensive. But it does show how a truly unique idea for a whole new type of product can be quickly and easily visualized using 3D Printing technology. Within a week a full working prototype of a complex product can be produced.

It also shows the power of custom product development. There is a significant market out there for custom applications where people need a unique application like this.  Although the cost of producing these was not small, it is much less than any traditional manufacturing process when you only need one or two copies.  This is another example of how someone can create a new service around taking peoples unique design requirements and creating a stand-out solution in relatively little time.

Plus, they just look cool. That is “what” enough for us.

If you have an idea you want to realize using 3D Printing, contact PADT.  We have the skill, the experience, and the equipment to make it happen.