Real time facial animation package based on muscle model of the face. Includes basic scripting language, full API, animation compositing, tools for creating and exporting muscles in 3D studio max.

Project Activity

See All Activity >

Categories

Games, 3D Modeling

License

Qt Public License (QPL)

Follow Expression Facial Animation System

Expression Facial Animation System Web Site

nel_h2
Secure User Management, Made Simple | Frontegg Icon
Secure User Management, Made Simple | Frontegg

Get 7,500 MAUs, 50 tenants, and 5 SSOs free – integrated into your app with just a few lines of code.

Frontegg powers modern businesses with a user management platform that’s fast to deploy and built to scale. Embed SSO, multi-tenancy, and a customer-facing admin portal using robust SDKs and APIs – no complex setup required. Designed for the Product-Led Growth era, it simplifies setup, secures your users, and frees your team to innovate. From startups to enterprises, Frontegg delivers enterprise-grade tools at zero cost to start. Kick off today.
Start for Free
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
0
0
0
0
1
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5

User Reviews

  • I couldn't build it. ... g++ -DPACKAGE_NAME=\"EXPRESSION\" -DPACKAGE_TARNAME=\"expression\" -DPACKAGE_VERSION=\"0.1\" "-DPACKAGE_STRING=\"EXPRESSION 0.1\"" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DPACKAGE=\"EXPRESSION\" -DVERSION=\"0.1\" -I. -I. -I. -I../../../sdk/nvmathlib/inc/ -I../../../src/ -g -Wall -MT ExpHead.lo -MD -MP -MF .deps/ExpHead.Tpo -c ExpHead.cpp -fPIC -DPIC -DPIC -o ExpHead.o In file included from ExpHead.cpp:21:0: Exphead.h:25:0: warning: ignoring #pragma warning [-Wunknown-pragmas] #pragma warning (disable:4786) //MS VC++ doesn't like maps ^ In file included from ExpHead.cpp:31:0: ExpMeshAdapter.h:60:8: warning: extra tokens at end of #endif directive #endif EXPMESHADAPTER_H ^ In file included from ExpHead.cpp:21:0: Exphead.h:291:12: error: extra qualification 'ExpHead::' on member 'GetCurrentlySelectedMuscle' [-fpermissive] Muscle * ExpHead::GetCurrentlySelectedMuscle(); ^ Exphead.h:292:27: error: extra qualification 'ExpHead::' on member 'GetMuscleArray' [-fpermissive] std::vector<Muscle *> & ExpHead::GetMuscleArray(){return mMuscleData.mMuscles;} ^ ExpHead.cpp: In member function 'void EyelidGizmo::Activate(float)': ExpHead.cpp:107:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i=0; i < mTaglist.size(); i++) { ^ ExpHead.cpp: In member function 'void FacialLayer::InterpolateExpression(const Expression&, float)': ExpHead.cpp:124:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i=0; i < mOutput.m.size(); i++) { ^ ExpHead.cpp: In member function 'void ExpHead::InitLayers()': ExpHead.cpp:142:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < mLayers.size(); i++) ^ ExpHead.cpp: In destructor 'MuscleData::~MuscleData()': ExpHead.cpp:196:24: warning: deleting object of abstract class type 'Muscle' which has non-virtual destructor will cause undefined behaviour [-Wdelete-non-virtual-dtor] delete (mMuscles[i]); ^ ExpHead.cpp: In member function 'void ExpHead::ReadTags(const string&)': ExpHead.cpp:227:13: error: 'stderr' was not declared in this scope fprintf(stderr,"Opening error on file:%10s\n", FileName) ; ^ ExpHead.cpp:227:60: error: 'fprintf' was not declared in this scope fprintf(stderr,"Opening error on file:%10s\n", FileName) ; ^ ExpHead.cpp:237:38: error: 'fscanf' was not declared in this scope fscanf ( Infile, "%s", &tagname ) ; ^ ExpHead.cpp:274:17: error: 'fclose' was not declared in this scope fclose(Infile); ^ ExpHead.cpp: In member function 'void MuscleData::ReadMuscles(std::string, std::vector<Morpher*>*, ExpMeshAdapter*)': ExpHead.cpp:305:13: error: 'stderr' was not declared in this scope fprintf(stderr,"Opening error on file:%10s\n", FileName.c_str( ) ); ^ ExpHead.cpp:305:70: error: 'fprintf' was not declared in this scope fprintf(stderr,"Opening error on file:%10s\n", FileName.c_str( ) ); ^ ExpHead.cpp:308:43: error: 'fscanf' was not declared in this scope fscanf ( Infile, "%d", &numberofmuscles ) ; ^ ExpHead.cpp:426:16: error: 'fclose' was not declared in this scope fclose(Infile) ; ^ ExpHead.cpp: In member function 'void ExpHead::CreateMuscleMapping()': ExpHead.cpp:432:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i< NumMuscle(); i ++) { ^ ExpHead.cpp: In member function 'void ExpHead::ReadPrimitives(const string&)': ExpHead.cpp:477:15: error: 'stderr' was not declared in this scope fprintf ( stderr, "can't open input file: %s\n", FileName ) ; ^ ExpHead.cpp:477:63: error: 'fprintf' was not declared in this scope fprintf ( stderr, "can't open input file: %s\n", FileName ) ; ^ ExpHead.cpp:482:41: error: 'fscanf' was not declared in this scope fscanf ( InFile, "%d", &nexpressions ) ; ^ ExpHead.cpp:511:20: error: 'fclose' was not declared in this scope fclose ( InFile ) ; ^ ExpHead.cpp: In member function 'void ExpHead::ReadCompoundPrimitives(const string&)': ExpHead.cpp:566:15: error: 'stderr' was not declared in this scope fprintf ( stderr, "can't open input file: %s\n", FileName ) ; ^ ExpHead.cpp:566:63: error: 'fprintf' was not declared in this scope fprintf ( stderr, "can't open input file: %s\n", FileName ) ; ^ ExpHead.cpp:571:41: error: 'fscanf' was not declared in this scope fscanf ( InFile, "%d", &numofcompound ) ; ^ ExpHead.cpp:644:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (index >= mExpressions.size()){ ^ ExpHead.cpp:672:19: error: 'fclose' was not declared in this scope fclose ( InFile ) ; ^ ExpHead.cpp:558:12: warning: unused variable 'face' [-Wunused-variable] ExpHead *face =this; ^ ExpHead.cpp: In member function 'void ExpHead::PrintCurrentExpression()': ExpHead.cpp:721:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (i=0; i < NumMuscle(); i++){ ^ ExpHead.cpp: In member function 'void ExpHead::OverlayExpression(Expression*, const Expression&, const Expression&)': ExpHead.cpp:764:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i=0; i< res->m.size(); i++) ^ ExpHead.cpp: In member function 'void FacialLayer::InterpolateKeyframes(const Sequence&, float)': ExpHead.cpp:787:7: warning: unused variable 'nkeys' [-Wunused-variable] int nkeys = keylist.keyframes.size(); ^ ExpHead.cpp: In member function 'void ExpHead::ActivateCurrentState()': ExpHead.cpp:830:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(i = 0; i < mLayers.size(); i++) ^ ExpHead.cpp:852:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (i=0; i < NumMuscle(); i++) ^ ExpHead.cpp: In member function 'void ExpHead::DrawMuscles(const MatQ&)': ExpHead.cpp:888:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i=0; i<NumMuscle(); i++ ) { ^ ExpHead.cpp: In member function 'void ExpHead::ProcessEvent(float)': ExpHead.cpp:1027:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < mLayers.size(); i++) ^ ExpHead.cpp: In member function 'bool ExpHead::ProcessEvent(ExpEvent*, int)': ExpHead.cpp:1055:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (current->message >= mExpressions.size()) { ^ ExpHead.cpp:1046:10: warning: enumeration value 'playbackSingle' not handled in switch [-Wswitch] switch (current->type) { ^ ExpHead.cpp:1046:10: warning: enumeration value 'nextExp' not handled in switch [-Wswitch] ExpHead.cpp: In member function 'void ExpHead::SelectNextMuscle()': ExpHead.cpp:1132:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (current_muscle >= (NumMuscle())){ ^ ExpHead.cpp: In member function 'const string ExpHead::GetCurrentlySelectedMuscleName()': ExpHead.cpp:1153:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (current_muscle < (NumMuscle()) && current_muscle >= 0){ ^ ExpHead.cpp: In member function 'Muscle* ExpHead::GetCurrentlySelectedMuscle()': ExpHead.cpp:1162:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (current_muscle < (NumMuscle()) && current_muscle >= 0){ ^ ExpHead.cpp: In member function 'const Expression& ExpHead::GetExpression(const string&)': ExpHead.cpp:1206:9: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(ret!= -1) ^ Makefile:287: recipe for target 'ExpHead.lo' failed make[3]: *** [ExpHead.lo] Error 1 make[3]: Leaving directory '/home/stephane/devel/expression/ExpDemo1.2_linux/src/expression/ExpressionLib' Makefile:176: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/stephane/devel/expression/ExpDemo1.2_linux/src/expression' Makefile:176: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/stephane/devel/expression/ExpDemo1.2_linux/src' Makefile:190: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
Read more reviews >

Additional Project Details

Operating Systems

Windows

Intended Audience

Developers

Programming Language

C++

Related Categories

C++ Games, C++ 3D Modeling Software

Registered

2000-10-29