Giter VIP home page Giter VIP logo

artisynth_core's Introduction

ArtiSynth: Combined MultiBody/FEM Simulation

This is the core distribution of ArtiSynth, a 3D mechanical modeling system that supports the combined simulation of multibody and finite element (FEM) models, together with contact and constraints. It is targeted predominantly at biomechanical and biomedical applications, but can also be used for general purpose mechanical simulation. It is freely available under a two-clause BSD-style open source license.

The system is implemented in Java, and provides a rich set of modeling components, including particles, rigid bodies, finite elements with both linear and nonlinear materials, point-to-point muscles, and various bilateral and unilateral constraints including contact. A graphical interface allows interactive component navigation, model editing, and simulation control.

Full details are provided on the ArtiSynth website at www.artisynth.org.

Installation instructions, including what to do after you clone from Github, are available at www.artisynth.org/installGuides.

Other documentation on how to use the system and build models is available at www.artisynth.org/doc.


Files in the top directory:

.classpath
Classpath information used by the Eclipse IDE
.git*
Repository and configuration information used by the Git SCM
.project
Project information used by the Eclipse IDE
ArtiSynth.launch
Default "launch" configuration for used by the Eclipse IDE
ArtiSynth_launch
Backup copy of the default version of ArtiSynth.launch
.settings/
Settings information used by the Eclipse IDE
DISTRO_EXCLUDE
Files that should be excluded from the current precompiled distribution
EXTCLASSPATH.sample
Example EXTCLASSPATH file. An EXTCLASSPATH files indicates to the ArtiSynth Launcher additional classpaths that should be used when searching for models.
LICENSE
Licensing and terms of use
Makefile
Makefile for compiling and doing certain maintenance operations in a shell environment
Makefile.base
Base definitions for Makefile and Makefile in subdirectories
README.md
This file
CODE_OF_CONDUCT.md
Project code of conduct
VERSION
Current distribution version
bin/
Stand-alone programs, mostly implemented as scripts. The program 'artisynth' starts up the ArtiSynth system.
classes/
Root directory for compiled classes
demoModels.txt
List of "banner" demo models available when ArtiSynth starts up
doc/
System documenation
eclipseSettings.zip
Default project settings for the Eclipse IDE (obsolete since these are now checked directly into the repository)
lib/
Java libraries, plus architecture-specific libraries for native code support, mostly involving linear solvers, Java OpenGL (JOGL), and collision detection
mainModels.txt
List of "banner" anatomical models in the ArtiSynth Models package (which must be installed)
matlab/
Matlab scripts for running ArtiSynth from matlab
modelMenu.xml
Default configuraion for the model menu
scriptMenu.xml
Default configuraion for the model menu
scripts/
Jython scripts for basic testing, etc. Some of these may assume the installation of additional projects.
setup.bash
Example ArtiSynth setup script for bash
setup.csh
Example ArtiSynth setup script for chs/tcsh
src/
ArtiSynth source code
support/
Configuration information for external IDEs and support software, including default settings for the Eclipse IDE
tmp/
Temp directory

artisynth_core's People

Contributors

bsagl avatar cantonios avatar fabienpean avatar johnlloyd7 avatar stavness avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

artisynth_core's Issues

Next contour boundary point XXX not entering face XXX

Every once in a while, I get the following error:

face 89045:
44533  46.00132093  -1.21924727   0.89150075
44748  45.55579251  -1.31618806   0.43437934
44749  45.47207493  -1.59634294   0.99458548
  [ 44749 44533 ] >
     0  45.64094404  -1.47602118   0.96169373 4 E  
     2  45.64668165  -1.47193304   0.96057618 4 X  
     6  45.65567948  -1.46552196   0.95882361 4 X  
     4  45.66154353  -1.46134373   0.95768143 4 E  
  [ 44533 44748 ] >
  [ 44748 44749 ] >
maspack.util.InternalErrorException: Next contour boundary point 6 not entering face 89045 mesh0=false
	at maspack.collision.SurfaceMeshIntersector$FaceCalculator.addBoundaryArea(SurfaceMeshIntersector.java:3096)
	at maspack.collision.SurfaceMeshIntersector.findPenetrationRegion(SurfaceMeshIntersector.java:3548)
	at maspack.collision.SurfaceMeshIntersector.findPenetrationRegions(SurfaceMeshIntersector.java:4125)
	at maspack.collision.SurfaceMeshIntersector.findRegions(SurfaceMeshIntersector.java:772)
	at maspack.collision.SurfaceMeshIntersector.findContoursAndRegions(SurfaceMeshIntersector.java:742)
	at artisynth.core.mechmodels.CollisionManager.computeContactInfo(CollisionManager.java:2188)
	at artisynth.core.mechmodels.CollisionManager.checkForContact(CollisionManager.java:2233)
	at artisynth.core.mechmodels.CollisionManager.updateConstraints(CollisionManager.java:2630)
	at artisynth.core.mechmodels.CollisionManager.updateConstraints(CollisionManager.java:2579)
	at artisynth.core.mechmodels.MechSystemBase.updateConstraints(MechSystemBase.java:487)
	at artisynth.core.mechmodels.MechSystemSolver.applyPosCorrection(MechSystemSolver.java:2470)
	at artisynth.core.mechmodels.MechSystemSolver.constrainedBackwardEuler(MechSystemSolver.java:2836)
	at artisynth.core.mechmodels.MechSystemSolver.solve(MechSystemSolver.java:720)
	at artisynth.core.mechmodels.MechSystemBase.advance(MechSystemBase.java:1048)
	at artisynth.core.workspace.RootModel.advanceModel(RootModel.java:1707)
	at artisynth.core.workspace.RootModel.doadvance(RootModel.java:1745)
	at artisynth.core.workspace.RootModel.advance(RootModel.java:1557)
	at artisynth.models.rl.jaw.RlJawDemo.advance(RlJawDemo.java:126)
	at artisynth.core.driver.Scheduler$Player.doadvance(Scheduler.java:191)
	at artisynth.core.driver.Scheduler$Player.play(Scheduler.java:255)
	at artisynth.core.driver.Scheduler$Player.run(Scheduler.java:297)

Any ideas on how to avoid it?

Running the artisynth on macos catalina 10.15.6, fails

I am attaching the report as a text, but the short message I receive when using zsh trying to run artisynth is below. I tried running with both current development version and with the lastest stable release provided on the website.
I am using java and javac version "1.8.0_261".

2020-07-17 00:19:26.773 java[5801:136441] Apple AWT Internal Exception: NSWindow drag regions should only be invalidated on the Main Thread!
2020-07-17 00:19:26.773 java[5801:136441] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff316b4b57 __exceptionPreprocess + 250
1 libobjc.A.dylib 0x00007fff6a4fb5bf objc_exception_throw + 48
2 CoreFoundation 0x00007fff316dd34c -[NSException raise] + 9
3 AppKit 0x00007fff2e8d75ec -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 310
4 AppKit 0x00007fff2e8bf052 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1416
5 AppKit 0x00007fff2e8beac3 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
6 libnativewindow_macosx.jnilib 0x000000012cfd73fe Java_jogamp_nativewindow_macosx_OSXUtil_CreateNSWindow0 + 398
7 ??? 0x000000010a0eb6c7 0x0 + 4463703751
)
libc++abi.dylib: terminating with uncaught exception of type NSException
./bin/artisynth: line 188: 5801 Abort trap: 6 java $JAVA_OPTS artisynth.core.driver.Launcher "${MAIN_OPTS[@]}"

Exception when contact pressure display range has a lower bound > 0

Hi all,

I seem to have found a bug in the code for rendering contact
pressures. It seems that sometimes when using a fixed display range
with a lower bound > 0, I get an exception like this:

java.lang.NullPointerException
at
maspack.render.GL.GL3.ColorBufferPutter.putColor(ColorBufferPutter.java:16)
at
maspack.render.GL.GL3.GL3SharedRenderObjectVertices.fillVertexVBO(GL3SharedRenderObjectVertices.java:202)
at
maspack.render.GL.GL3.GL3SharedRenderObjectVertices.buildVertices(GL3SharedRenderObjectVertices.java:141)
at
maspack.render.GL.GL3.GL3SharedRenderObjectBase.maybeUpdateVertices(GL3SharedRenderObjectBase.java:172)
at
maspack.render.GL.GL3.GL3SharedRenderObjectPrimitives.maybeUpdate(GL3SharedRenderObjectPrimitives.java:63)
at
maspack.render.GL.GL3.GL3SharedRenderObjectPrimitives.generate(GL3SharedRenderObjectPrimitives.java:306)
at
maspack.render.GL.GL3.GL3SharedRenderObjectManager.getPrimitives(GL3SharedRenderObjectManager.java:39)
at
maspack.render.GL.GL3.GL3SharedResources.getPrimitives(GL3SharedResources.java:50)
at
maspack.render.GL.GL3.GL3RenderObjectManager.getPrimitives(GL3RenderObjectManager.java:107)
at
maspack.render.GL.GL3.GL3Viewer.drawTriangles(GL3Viewer.java:1924)
at maspack.render.GL.GLViewer.drawTriangles(GLViewer.java:4665)
at maspack.render.GL.GLViewer.drawTriangles(GLViewer.java:4660)
at
artisynth.core.mechmodels.CollisionRenderer.render(CollisionRenderer.java:537)
at
artisynth.core.mechmodels.CollisionHandler.render(CollisionHandler.java:1700)
at
artisynth.core.mechmodels.CollisionHandler.render(CollisionHandler.java:1690)
at maspack.render.RenderList.renderList(RenderList.java:419)

I was able to reproduce the problem in the demos. Run
artisynth.demos.tutorial.ContactPressureRender, open the navigation
panel, and navigate to

models > mech > collisionManager > behaviors > models#ball-models#sheet

Then right click, "Edit properties ...", and in the "interval"
property for the colrMapRange, set the lower bound to 1000.

thanks!

DualQuaternion.setScrewParameters doesn't use passed in parameters

Looking at maspack.matrix.DualQuaternion.setScrewParameters(), Vector3d l and Vector3d m are parameters of this function but they are not used. Instead, the function uses the member variables ltmp and mtmp. Currently, all uses of setScrewParameters involve passing ltmp and mtmp as the corresponding arguments so no bugs are observed. Nevertheless, the function body should be changed, with l replacing ltmp and m replacing mtmp.

Setting Framemarkers in GUI on a rigidbody sometimes fails

Let's say we want to use framemarkers to get the coordinates of certain landmarks on the Jaw model. The Add FrameMarkers tool works fine on "one side of the jaw", but fails on the other side of the same jaw. By failing I mean: the frameMarker will not sit on the surface of the target mesh, but will be hanging in the air.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.