Skip to content

Leopardob/como

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMO: Cooperative Modeller

Ver en Español

COMO Screenshot

About

COMO (Cooperative Modeller) is a cooperative 3d modelling sofware. It allows multiple users to connect though the network and work on a same 3D scene in real time.

This project is "Completed", meaning that I don't plan to add new functionalities to it any time soon.

A scenes modeller

The cooperative modeller COMO is oriented towards the colaborative creation of scenes instead of the creation of models. This mainly implies:

  • Two users can't be working on the same 3D object at the same time. Only the user who selects an object (a mesh, a material, etc) can edit it until he / she until the object is unselected.
  • The edges and vertices of 3D meshes can be edited.

The idea is that multiple users create a scene, for example, of the inside of a building, by combining primitives "wall", "chair", "table", etc. COMO wasn't designed for modelling a human character from zero, for example.

Features

COMO allows users to:

  • create a shared scene or connect to a created one.
  • load meshes from files and add them to the scene (only OBJ files).
  • create cubes, cones, cylinders and spheres.
  • create directional lights until the limit defined by the server is reached.
  • select and transform multiple entities (meshes, lights and cameras).
    • Allowed transformations are translations, rotations and scales.
    • Incorporates arbitrary and axis related (X, Y or Z) transformations.
    • The pivot point for rotations and scales can be one of three: world origin, selection's centroid or individual centroids.
  • remove entities from the scene (excepting the scene's camera).
  • edit the parameters of the materials associated to the meshes:
    • Color
    • Ambient reflectivity
    • Diffuse reflectivity
    • Specular reflectivity
    • Specular exponent
  • load textures and apply them to walls of cubes, cones, cylinders and spheres. For every wall and its texture, user can set the texture's offset and scale over the wall.
  • save and load scenes.

Technical features

Operative system

Although COMO has been developed to be cross-platform, it only works on Ubuntu (x86_64) currently. With minor changes in code it should work on others platforms... in theory.

Libraries

COMO makes use of the following libraries:

COMO also depends on the program "gnome-terminal" for creating a server from the client software.

Building COMO (Ubuntu 14.04)

Dependencies

  1. Install Qt 5.2 or above. You can dowload and use the online installer from here or you can also install Qt from this Ubuntu repository issuing the following commands in a terminal.

    sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
    sudo apt-get update
    sudo apt-get install qtdeclarative5-dev qtcreator
    
  2. Use following commands to display your OpenGL version and check that it is 4.2 or greater.

    sudo apt-get install mesa-utils
    glxinfo | grep OpenGL
    
  3. Install the rest of dependencies (make sure that the versions are equal or greater than those indicated in "Dependencies".

    sudo apt-get install gnome-terminal libglm-dev libboost1.55-dev libboost-system1.55.0 libboost-filesystem1.55.0 libboost-thread1.55.0 libboost-system1.55-dev libboost-thread1.55-dev libboost-filesystem1.55-dev gnome-terminal libsdl2-image-dev
    

Building

  1. Clone this repository.

    git clone git@github.com:moisesjbc/como.git
    
  2. Enter in the downloaded directory.

    cd como
    
  3. Initialize and update the repository's submodules:

    git submodule update --init --recursive
    

4. Open "project/client/como_project.pro" file with Qt Creator and set the build directory to "../../bin/client".

5. Open "project/server/server.pro" file with Qt Creator and set the build directory to "../../bin/server".

6. Optionally add "-j (n)" to "make additional arguments" in both project's properties. (n) is the desired number of concurrent threads that will be used for building.

7. Build both projects in "release" mode and enjoy!


## Multimedia 

### Documentation

[Check COMO's wiki](https://github.com/moisesjbc/como/wiki) for learning what you can do with COMO and how to do it.

### Videos

On this [Youtube playlist](http://www.youtube.com/playlist?list=PLfi4ueBWh9m5T1Gp72CyoKc2hi_RGa_NG) you can see all the videos I have uploaded about the cooperative modeller COMO.

About

A cooperative 3d modelling sofware

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.0%
  • QMake 2.3%
  • Other 0.7%