A computer-implemented method for extracting a feature tree from a mesh representing a manufacturing product, the method comprising: - providing a mesh; - computing a geometric and adjacency graph of the provided mesh, wherein: - - each node of the graph represents one region of the mesh and comprises a primitive type and parameters of the region; - - each connection between two nodes is an intersection between the respective surfaces of the regions represented by the two connected nodes; - instantiating for each node of the graph, a surface based on the identified primitive type and parameters of the region; - for each instantiated surface: - - computing one outer intersection loop and possibly one or more inner intersection loops, each intersection loop being obtained from an ordered list of nodes of the graph that are connected to the said each node; - - computing at least one sketch from the outer intersection loop and possibly one or more sketches respectively from possibly one or more inner intersection loops of the instantiated surface; - applying a sweep operation to each computed sketch thereby generating a solid for each sketch; - computing a set of possible combinations of add or remove operations between the obtained solids, and obtaining a final solid for each computed combination; - computing a similarity score of each final solid with the input mesh; - identifying the most similar final solid with the input mesh based on the similarity score, the combinations of add or remove operations of the identified most similar final solid corresponding to the feature tree of the mesh. - providing a mesh; - computing a geometric and adjacency graph of the provided mesh, wherein: - - each node of the graph represents one region of the mesh and comprises a primitive type and parameters of the region; - - each connection between two nodes is an intersection between the respective surfaces of the regions represented by the two connected nodes; - - each node of the graph represents one region of the mesh and comprises a primitive type and parameters of the region; - - each connection between two nodes is an intersection between the respective surfaces of the regions represented by the two connected nodes; - instantiating for each node of the graph, a surface based on the identified primitive type and parameters of the region; - for each instantiated surface: - - computing one outer intersection loop and possibly one or more inner intersection loops, each intersection loop being obtained from an ordered list of nodes of the graph that are connected to the said each node; - - computing at least one sketch from the outer intersection loop and possibly one or more sketches respectively from possibly one or more inner intersection loops of the instantiated surface; - - computing one outer intersection loop and possibly one or more inner intersection loops, each intersection loop being obtained from an ordered list of nodes of the graph that are connected to the said each node; - - computing at least one sketch from the outer intersection loop and possibly one or more sketches respectively from possibly one or more inner intersection loops of the instantiated surface; - applying a sweep operation to each computed sketch thereby generating a solid for each sketch; - computing a set of possible combinations of add or remove operations between the obtained solids, and obtaining a final solid for each computed combination; - computing a similarity score of each final solid with the input mesh; - identifying the most similar final solid with the input mesh based on the similarity score, the combinations of add or remove operations of the identified most similar final solid corresponding to the feature tree of the mesh.